import { Singleton } from '../../Common/Singleton';
import { Board } from '../../DatabaseServices/Entity/Board';
import { TemplateRecord } from '../../DatabaseServices/Template/TemplateRecord';
import { IConfigOption } from '../Components/Board/UserConfig';
import { BehindBoardOption, BoardConfigOption, IBaseOption, BoardProcessOption, ClosingStripOption, IGrooveOption, LayerBoardOption, LayerNailOption, SideBoardOption, SingleBoardOption, TBBoardOption, VerticalBoardOption, IUiOption, AnyObject, IHightDrillOption, IDrawBoardAutoCutOption } from './BoardInterface';
export interface IConfigStore {
    configName: string;
    configsNames: string[];
    InitOption: () => void;
    SaveConfig: () => IConfigOption;
    UpdateOption: Function;
    HasInvailValue?: () => string;
    EditorTemplate?: TemplateRecord;
    InitConfigs?: () => {
        [key: string]: IConfigOption;
    };
    GetOtherConfig?: (conf: any) => AnyObject;
    HandleImportConfig?: (conf: any) => void;
}
export declare class BoardStore<T = IBaseOption> extends Singleton implements IConfigStore {
    configName: string;
    configsNames: string[];
    EditorTemplate: TemplateRecord;
    m_Option: T;
    protected m_UiOption: IUiOption<T>;
    readonly title: string;
    m_BoardProcessOption: BoardProcessOption;
    remarks: [string, string][];
    rectDrillOption: IHightDrillOption;
    autoCutOption: IDrawBoardAutoCutOption;
    constructor();
    InitOption(): void;
    protected InitDrillType(): void;
    protected InitRectDrillData(highDrill: string[]): void;
    get UIOption(): IUiOption<T>;
    get BoardProcessOption(): BoardProcessOption;
    GetBoardProcessOption(br: Board): void;
    OnOk(state: number, isClose?: boolean, d?: AnyObject): Promise<void>;
    private SetRemarks;
    SaveConfig(): IConfigOption<AnyObject>;
    UpdateOption(cof: IConfigOption): void;
    protected UpdateRemarks(cof: IConfigOption): void;
    HasInvailValue(): string;
    InitConfigs(): any;
}
export declare class SideBoardStore extends BoardStore<SideBoardOption> {
    m_Option: SideBoardOption;
    title: string;
    constructor();
    InitOption(): void;
    UpdateOption(cof: IConfigOption): void;
}
export declare class TopBottomBoardStore extends BoardStore {
    topBoardOption: TBBoardOption;
    bottomBoardOption: TBBoardOption;
    title: string;
    topUiOption: IUiOption<TBBoardOption>;
    bottomUiOption: IUiOption<TBBoardOption>;
    get TopUiOption(): IUiOption<TBBoardOption>;
    get BottomUiOption(): IUiOption<TBBoardOption>;
    InitConfigs(): {
        [key: string]: IConfigOption<AnyObject>;
    };
    InitOption(): void;
    SaveConfig(): IConfigOption<AnyObject>;
    UpdateOption(cof: IConfigOption): void;
    private UpdateConfigVersion;
    HasInvailValue(): string;
}
export declare class BehindBoardStore extends BoardStore<BehindBoardOption> {
    title: string;
    m_Option: BehindBoardOption;
    grooveOption: IGrooveOption;
    constructor();
    InitOption(): void;
    SaveConfig(): IConfigOption<AnyObject>;
    UpdateOption(cof: IConfigOption<BehindBoardOption>): void;
    HasInvailValue(): string;
    InitConfigs(): {
        [key: string]: IConfigOption<AnyObject>;
    };
}
export declare class LayerBoardStore extends BoardStore<LayerBoardOption> {
    title: string;
    m_Option: LayerBoardOption;
    layerNailOption: LayerNailOption;
    uiLayerNailOption: IUiOption<LayerNailOption>;
    constructor();
    get NailUiOption(): IUiOption<LayerNailOption>;
    InitOption(): void;
    InitConfigs(): {};
    SaveConfig(): IConfigOption<AnyObject>;
    UpdateOption(cof: IConfigOption<LayerBoardOption>): void;
    HasInvailValue(): string;
}
export declare class VerticalBoardStore extends BoardStore<VerticalBoardOption> {
    title: string;
    m_Option: VerticalBoardOption;
    InitOption(): void;
    UpdateOption(cof: IConfigOption<VerticalBoardOption>): void;
}
export declare class SingleBoardStore extends BoardStore<SingleBoardOption> {
    title: string;
    m_Option: SingleBoardOption;
    InitOption(): void;
}
export declare class ClosingStripStore extends BoardStore<ClosingStripOption> {
    title: string;
    m_Option: ClosingStripOption;
    constructor();
    ChangeCabinetName(cof?: IConfigOption): void;
    InitOption(): void;
    UpdateOption(cof: IConfigOption<ClosingStripOption>): void;
}
export declare class SpecialShapeStore extends BoardStore<BoardConfigOption> {
    title: string;
    m_Option: BoardConfigOption;
    isMore: boolean;
    InitOption(): void;
    UpdateOption(cof: IConfigOption<BoardConfigOption>): void;
}
export declare function FixErrorDataConfig(config: IBaseOption, defaultConfig: IBaseOption): void;
//# sourceMappingURL=BoardStore.d.ts.map