import * as React from 'react';
import { Board } from '../../../DatabaseServices/Entity/Board';
import { BoardProcessOption, IGrooveOption, SingleBoardOption, IUiOption } from '../../Store/BoardInterface';
import { IObservableValue } from 'mobx';
import { IRectHoleOption } from '../../../Add-on/DrawDrilling/HoleUtils';
export interface ICommonOptionProps {
    _CurrentBoard: IObservableValue<Board>;
    setBrConfig?: () => void;
    handleComfirmOption?: () => void;
    _ConfigOption?: SingleBoardOption;
    _ProcessOption?: BoardProcessOption;
    _GrooveOption?: IGrooveOption;
    drillsOption?: IRectHoleOption;
    canDrawSpecial?: IObservableValue<boolean>;
    canModeling?: IObservableValue<boolean>;
    _IsSpecialBoard?: IObservableValue<boolean>;
    otherBoardData: {
        [key: string]: any;
    };
    handleChangeCurrentBoard?: (br: Board) => void;
    uiConfigOption?: IUiOption<SingleBoardOption>;
    remarks?: [string, string][];
}
export declare function AddCommonBoardProps(Com: React.ComponentType<ICommonOptionProps>): {
    new (props: any): {
        _ConfigOption: SingleBoardOption;
        _ProcessOption: BoardProcessOption;
        _GrooveOption: IGrooveOption;
        drillsOption: IRectHoleOption;
        _CurrentBoard: IObservableValue<Board>;
        _IsSpecialBoard: IObservableValue<boolean>;
        canDrawSpecial: IObservableValue<boolean>;
        canModeling: IObservableValue<boolean>;
        remarks: [string, string][];
        otherBoardData: {
            isChaiDan: boolean;
        } & import("mobx").IObservableObject;
        _UIConfigOPtion: IUiOption<SingleBoardOption>;
        readonly CurrentBoard: Board;
        render(): JSX.Element;
        setBrConfig: (() => void) & import("mobx").IAction;
        InitRectBoardDrillOption: (() => void) & import("mobx").IAction;
        SetRectHighDrill: () => void;
        handleComfirmOption: () => void;
        handleChangeCurrentBoard: (br: Board) => void;
        context: any;
        setState<K extends never>(state: {} | ((prevState: Readonly<{}>, props: Readonly<{
            board: Board;
        }>) => {} | Pick<{}, K>) | Pick<{}, K>, callback?: () => void): void;
        forceUpdate(callback?: () => void): void;
        readonly props: Readonly<{
            board: Board;
        }> & Readonly<{
            children?: React.ReactNode;
        }>;
        state: Readonly<{}>;
        refs: {
            [key: string]: React.ReactInstance;
        };
        componentDidMount?(): void;
        shouldComponentUpdate?(nextProps: Readonly<{
            board: Board;
        }>, nextState: Readonly<{}>, nextContext: any): boolean;
        componentWillUnmount?(): void;
        componentDidCatch?(error: Error, errorInfo: React.ErrorInfo): void;
        getSnapshotBeforeUpdate?(prevProps: Readonly<{
            board: Board;
        }>, prevState: Readonly<{}>): any;
        componentDidUpdate?(prevProps: Readonly<{
            board: Board;
        }>, prevState: Readonly<{}>, snapshot?: any): void;
        componentWillMount?(): void;
        UNSAFE_componentWillMount?(): void;
        componentWillReceiveProps?(nextProps: Readonly<{
            board: Board;
        }>, nextContext: any): void;
        UNSAFE_componentWillReceiveProps?(nextProps: Readonly<{
            board: Board;
        }>, nextContext: any): void;
        componentWillUpdate?(nextProps: Readonly<{
            board: Board;
        }>, nextState: Readonly<{}>, nextContext: any): void;
        UNSAFE_componentWillUpdate?(nextProps: Readonly<{
            board: Board;
        }>, nextState: Readonly<{}>, nextContext: any): void;
    };
    displayName: string;
    contextType?: React.Context<any>;
};
export declare function InitRectBoardDrillOption(br: Board, option: IRectHoleOption): void;
export declare function SetRectHighDrill(br: Board, option: IRectHoleOption): void;
//# sourceMappingURL=CommonBoardOption.d.ts.map