import { IObservableValue } from 'mobx';
import * as React from 'react';
import { CheckObjectType } from '../../../Common/CheckoutVaildValue';
import { Board } from '../../../DatabaseServices/Entity/Board';
import { BoardOpenDir, BrRelativePos } from '../../../DatabaseServices/Entity/BoardInterface';
import { BoardProcessOption } from "../../Store/OptionInterface/BoardProcessOption";
import { AnyObject, BoardConfigOption, IBaseOption, IDrawBoardAutoCutOption, IHightDrillOption, IUiOption, TBBoardOption } from "../../Store/OptionInterface/IOptionInterface";
export interface ISetItemOption {
    type: CheckObjectType;
    optKey: string;
    title?: string;
    option: AnyObject;
    /**不传将默认属性允许为字符串类型 */
    uiOption?: IUiOption<AnyObject>;
    isDisabled?: boolean;
    isReadOnly?: boolean;
    placeHolder?: string;
    onChange?: (e: any, ...arg: any[]) => void;
    inline?: boolean;
    className?: string;
    onBlur?(e?: any): any; /**输入框失去焦点触发 */
    onFocus?(e?: any): any; /**输入框获得焦点触发 */
    maxLength?: number;
    inputRef?: (el: any) => void;
    update?(): any;
    mounted?(): any; /**组件挂载完成触发 */
    isUpper?: boolean;
    tip?: string;
    titleStyle?: React.CSSProperties;
    inputTitle?: boolean;
}
interface ISetBlockOption {
    type: CheckObjectType;
    pars: Array<Array<string>>;
    option: IBaseOption;
    uiOption?: Object;
    className?: string;
    isInline?: boolean;
    onChange?: (e: any, ...arg: any[]) => void;
    disabled?: boolean;
    readonly?: boolean;
    children?: React.ReactNode;
    inputTitle?: boolean;
}
interface TBProps {
    par: string[][];
    pars: string[][];
    option: TBBoardOption;
    uiOption: Object;
    istop: boolean;
}
export declare class SetBoardDataItem extends React.Component<ISetItemOption, {}> {
    componentDidMount(): void;
    componentDidUpdate(): void;
    render(): JSX.Element;
}
export declare const SetBoardDataBlock: (props: ISetBlockOption) => JSX.Element;
export declare const TBBoardDataBlock: (props: TBProps) => JSX.Element;
export declare const BoardDirectionIcon: () => JSX.Element;
type ISpaceProps = {
    calcSpaceSize: string;
    spaceSize?: number;
    count?: number;
    exprCount?: string;
    thickness?: number;
    boardRelative?: BrRelativePos;
    exprThickness?: string;
};
interface BroadPosProps {
    uiOption: IUiOption<ISpaceProps>;
    option: ISpaceProps;
    posPars: [BrRelativePos, string][];
}
export declare class BoardRePosBlock extends React.Component<BroadPosProps> {
    private pars;
    private spaceSizeInputEl;
    private countInputEl;
    private updateFocus;
    private handleChangePos;
    private getSizeValue;
    componentDidMount(): void;
    render(): JSX.Element;
}
export declare class Notes extends React.Component<{
    remarks: [string, string][];
}> {
    render(): JSX.Element;
}
export declare const ItemName: ({ title, opt, className }: {
    title: string;
    opt: {
        name: string;
        openDir?: BoardOpenDir;
    };
    className?: string;
}) => JSX.Element;
export declare const BoardTypeComponent: (data: {
    opt?: BoardConfigOption;
    className?: string;
}) => JSX.Element;
interface I5InputComponent extends ISetItemOption {
    showDirectionIcon: boolean;
    hasCenter: boolean;
    upKey: string;
    downKey: string;
    leftKey: string;
    rightKey: string;
    centerKey?: string;
    isShowEditor?: boolean;
    highDrillOption?: IHightDrillOption;
    isRemarks?: boolean;
    edgeRemarks?: string[];
    otherBoardData?: {
        [key: string]: any;
    };
    verticalRemark?: boolean;
    layerRemark?: boolean;
    showHighEdgeProcessing?: IObservableValue<boolean>;
}
/**
 * 一圈输入框  封边+排钻?+备注?
 */
export declare class Input5Or4Component extends React.Component<I5InputComponent, {}> {
    render(): JSX.Element;
}
interface IDrillTypeSelect {
    opt: BoardProcessOption;
    br: Board;
    isShowHigh?: boolean;
    onFocus?: Function;
    otherBoardData?: {
        [key: string]: any;
    };
    drillOption: IHightDrillOption;
}
export declare class DrillTypeSelectCom extends React.Component<IDrillTypeSelect, {
    isDanger: boolean;
}> {
    _InvalidDrillBoardList: Board[];
    constructor(props: any);
    get Options(): string[];
    private editorDrilling;
    private handleChange;
    UNSAFE_componentWillMount(): void;
    render(): JSX.Element;
}
interface IAutoCutCheckboxProps {
    autoCutOption: IDrawBoardAutoCutOption;
    isFlex?: boolean;
    onChangeCallback?: () => void;
}
interface IRoomAndBoardMaterialInfo extends IBoardMaterialInfo {
    data: IBoardMaterialData & {
        roomName: string;
        cabinetName: string;
    };
    vertical?: boolean;
}
export declare const RoomAndBoardMaterialInfo: (props: IRoomAndBoardMaterialInfo) => JSX.Element;
interface IBoardMaterialData extends IBaseOption {
    boardMatName: string;
    material: string;
    color: string;
}
interface IBoardMaterialInfo {
    data: IBoardMaterialData;
}
export declare const BoardMaterialInfo: (props: IBoardMaterialInfo) => JSX.Element;
export declare class AutoCutCheckbox extends React.Component<IAutoCutCheckboxProps, {}> {
    static defaultProps: {
        isFlex: boolean;
    };
    ToggleValue: (type: number) => void;
    render(): JSX.Element;
}
export declare const BoardOpenDirSelect: (data: {
    opt?: BoardConfigOption;
    className?: string;
}) => JSX.Element;
export declare function ShowToasterOpenDirAndNameCheck(opt: {
    name: string;
    openDir?: BoardOpenDir;
}, text: string, callback: () => void): void;
export {};
//# sourceMappingURL=BoardCommon.d.ts.map