import { IObservableArray, IObservableValue } from 'mobx';
import * as React from 'react';
import { ArcBoardOptions } from '../../../Add-on/ArcBoard/ArcBoardFeeding';
import { FaceDirection } from '../../../Add-on/DrawDrilling/DrillType';
import { IBoardRectHoleType } from '../../../Add-on/DrawDrilling/HoleUtils';
import { Board } from '../../../DatabaseServices/Entity/Board';
import { BoardProcessOption } from "../../Store/OptionInterface/BoardProcessOption";
import { IGrooveOption, IUiOption, SingleBoardOption } from "../../Store/OptionInterface/IOptionInterface";
export interface ICommonOptionProps {
    _CurrentBoard: IObservableValue<Board>;
    setBrConfig?: () => void;
    handleComfirmOption?: () => void;
    _ConfigOption?: SingleBoardOption;
    _ProcessOption?: BoardProcessOption;
    _GrooveOption?: IGrooveOption;
    drillsOption?: IBoardRectHoleType;
    canDrawSpecial?: IObservableValue<boolean>;
    canModeling?: IObservableValue<boolean>;
    canSideModeling?: IObservableValue<boolean>;
    canCurve: IObservableValue<boolean>;
    _IsSpecialBoard?: IObservableValue<boolean>;
    otherBoardData: {
        [key: string]: any;
    };
    handleChangeCurrentBoard?: (br: Board) => void;
    uiConfigOption?: IUiOption<SingleBoardOption>;
    remarks?: [string, string][];
    arcBoardOptions: Map<number, ArcBoardOptions>;
    arcBoardConfig: {
        sweepVisibleFace: FaceDirection;
        sweepAngle: number;
        isDrawArcGroove: boolean;
    };
    ProcessingGroupList?: IObservableArray<any>;
}
export declare function AddCommonBoardProps(Com: React.ComponentType<ICommonOptionProps>): {
    new (props: any): {
        _ConfigOption: SingleBoardOption;
        _ProcessOption: BoardProcessOption;
        _GrooveOption: IGrooveOption;
        drillsOption: IBoardRectHoleType;
        _CurrentBoard: IObservableValue<Board>;
        _IsSpecialBoard: IObservableValue<boolean>;
        canDrawSpecial: IObservableValue<boolean>;
        canModeling: IObservableValue<boolean>;
        canSideModeling: IObservableValue<boolean>;
        canCurve: IObservableValue<boolean>;
        arcBoardOptions: Map<number, ArcBoardOptions>;
        remarks: [string, string][];
        otherBoardData: {
            isChaiDan: boolean;
            isDrillLock: boolean;
            isAssociationDrillLock: boolean;
        } & import("mobx").IObservableObject;
        _UIConfigOPtion: IUiOption<SingleBoardOption>;
        arcBoardConfig: {
            sweepVisibleFace: FaceDirection;
            sweepAngle: number;
            isDrawArcGroove: boolean;
        } & import("mobx").IObservableObject;
        ProcessingGroupList: IObservableArray<any>;
        readonly CurrentBoard: Board;
        render(): JSX.Element;
        setBrConfig: (() => void) & import("mobx").IAction;
        InitRectBoardDrillOption: (() => void) & import("mobx").IAction;
        SetRectHighDrillAndSealColor: () => 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 | undefined;
        }>;
        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> | undefined;
};
//# sourceMappingURL=CommonBoardOption.d.ts.map