import { BoardOpenDir, BoardType, BrRelativePos } from "../../../DatabaseServices/Entity/BoardInterface";
import { RenderType } from "../../../GraphicsSystem/RenderType";
import { BehindHeightPositon, RadioType, ViewDirection } from "./OptionEnum";
export interface IBaseOption {
    version?: number;
}
/**
 *板件参数
 */
export interface BoardConfigOption extends IBaseOption {
    type: BoardType;
    name: string;
    thickness?: number;
    height?: number;
    width?: number;
    openDir?: BoardOpenDir;
}
export interface RightPlaneLightOption {
    version: number;
    ShowHemiLight: boolean;
    SkyLightColor: string;
    SkyLightIntensity: number;
    SkyLightIndirectLightingIntensity: number;
    ShowSunLight: boolean;
    SunLightIntensity: number;
    SunLightIndirectLightingIntensity: number;
    SunLightColor: string;
    SunLightTemperature: number;
    SunLightElevationDeg: number;
    SunLightRotateDeg: number;
    ShowExposure: boolean;
    AutoExposure: boolean;
    ExposureCompensation: number;
    SunTime: string;
}
export interface ModifyTextsConfigOption {
    changeTexts: [string, string][];
}
export interface MaterialMapOption {
    id: string;
    kjlName: string;
}
export interface SideBoardOption extends BoardConfigOption {
    spaceSize?: number;
    leftShrink: number;
    rightShrink: number;
}
/**
 *背板参数
 *
 * @export
 * @interface BehindBoardOption
 * @extends {BoardConfigOption}
 */
export interface BehindBoardOption extends BoardConfigOption {
    leftExt: number;
    rightExt: number;
    topExt: number;
    bottomExt: number;
    boardPosition: BehindHeightPositon;
    moveDist: number;
    spaceSize?: number;
    count?: number;
    boardRelative?: BrRelativePos;
    calcHeight: string;
    calcSpaceSize: string;
    calcMoveDist: string;
}
/**
 *层板参数
 *
 * @export
 * @interface LayerBoardOption
 * @extends {BoardConfigOption}
 */
export interface LayerBoardOption extends BoardConfigOption {
    calcHeight: string;
    frontShrink: number;
    leftShrink: number;
    rightShrink: number;
    isTotalLength: boolean;
    isActive: boolean;
    spaceSize?: number;
    count?: number;
    boardRelative?: BrRelativePos;
    calcSpaceSize: string;
    calcFrontShrink: string;
    calcLeftShrink: string;
    calcRightShrink: string;
}
/**
 *层板钉参数
 *
 * @export
 * @interface LayerNailOption
 */
export interface LayerNailOption extends IBaseOption {
    isDraw: boolean;
    addCount: number;
    dist: number;
    isGroup: boolean;
    isInBack: boolean;
    front: number;
    behind: number;
    count: number;
    rad: number;
    length: number;
    depth: number;
}
/**
 *立板参数
 */
export interface VerticalBoardOption extends BoardConfigOption {
    frontShrink: number;
    bottomShrink: number;
    isTotalLength: boolean;
    isTotalWidth: boolean;
    count?: number;
    spaceSize?: number;
    boardRelative?: BrRelativePos;
    calcWidth: string;
    calcHeight: string;
    calcSpaceSize: string;
    calcFrontShrink: string;
    calcBottomShrink: string;
}
export interface TBBoardOption extends BoardConfigOption {
    isDraw: boolean;
    frontDist: number;
    behindDistance: number;
    isWrapSide: boolean;
    useLFData: boolean;
    leftExt: number;
    rightExt: number;
    offset: number;
    isDrawFooter?: boolean;
    footThickness?: number;
    footBehindShrink?: number;
    isDrawBackFooter?: boolean;
    footerOffset?: number;
    isDrawStrengthenStrip?: boolean;
    divCount?: number;
}
export interface SingleBoardOption extends BoardConfigOption {
    rotateX: number;
    rotateY: number;
    rotateZ: number;
    drawNumber?: number;
}
export interface IGrooveOption extends IBaseOption {
    grooveAddLength: string;
    grooveAddWidth: string;
    grooveAddDepth: string;
    knifeRadius?: string;
}
export interface IShinkOption extends IBaseOption {
    name: string;
    left: number;
    right: number;
    front: number;
    back: number;
    isLREqual: boolean;
    isFBEqual: boolean;
}
export type IUiOption<T> = {
    [P in (keyof T)]: T[P] extends number ? string : T[P];
};
export interface INailRule extends IBaseOption {
    startDist: number;
    endDist: number;
    count: number;
}
export interface IHightDrillOption {
    up: string;
    down: string;
    left: string;
    right: string;
}
export interface IBatchModifyPanelOption extends IBaseOption {
    length: string;
    width: string;
    thick: string;
    position: RadioType;
}
export type AnyObject = {
    [key: string]: any;
};
export interface ISmoothEdgeOption extends IBaseOption {
    smoothEdge: number;
    edge: number;
    scale: number;
    filterArr: string[];
}
export interface IDrawBoardAutoCutOption {
    isAutoCut: boolean;
    isRelevance: boolean;
}
export interface IKnifeProps {
    radius: number;
    angle: number;
}
export interface CommonPanelConfigOption extends IBaseOption {
    orderType: string;
}
export interface DatalistColumnWidthOption {
    name: number;
    date: number;
    size: number;
    operate: number;
}
export interface DatalistConfigOption extends IBaseOption {
    resizeUI: {
        [key: string]: DatalistColumnWidthOption;
    };
}
export interface TemplateManageOption extends IBaseOption {
    isAutoCut: boolean;
    isRelevance: boolean;
    roomName: string;
    cabName: string;
    useCabName: boolean;
    cabIndex?: number;
    originCabName: string;
    boardName?: string;
    useBoardName?: boolean;
    material?: string;
    color?: string;
    brMat?: string;
    useMaterial?: boolean;
    openDir?: BoardOpenDir | string;
    navigationWidth: string;
    showTag: boolean;
    perPageCount: number;
}
export interface WindowPanelConfigOption {
    Length: number;
    Height: number;
    Thick: number;
    WindowOffGround: number;
    IsBayWindow: boolean;
    BayLeftIsWall?: boolean;
    BayRightIsWall?: boolean;
    BayDist?: number;
    BayLeftDist?: number;
    BayMiddleDist?: number;
    BayRightDist?: number;
    HasWindowStone: boolean;
    StoneThick?: number;
    StoneBulge?: number;
    StoneLeftRightBulge?: number;
}
export interface IDimStyleOption extends IBaseOption {
    dimFXLON: boolean;
    dimFXL: number;
    dimASZ: number;
    dimGAP: number;
    dimEXE: number;
    dimTXT: number;
    dimTAD: number;
    dimALTD: number;
    dimADEC: number;
}
export interface ChangeColorByBoardMaterialOption {
    accordThickness: boolean;
    accordMaterial: boolean;
    accordMaterialName: boolean;
    accordMaterialColor: boolean;
}
export interface ShareBoardInfConfigurationOption {
    Physical2EdgeColor: number;
    VisualStyle: RenderType;
    Viewport: ViewDirection;
    IsExportBoard: boolean;
    IsExportHardware: boolean;
    showBom: boolean;
}
export interface ProcessingGroupOption {
    processGroupCategory: string[];
    addAlone: boolean;
}
export interface ConfigListMapOption extends IBaseOption {
    configList: {
        [k: string]: string[];
    };
}
//# sourceMappingURL=IOptionInterface.d.ts.map