import { IconName, IOptionProps } from '@blueprintjs/core';
import * as React from 'react';
import { ICountType } from '../../../Add-on/LookOverBoardInfos/LookOverBoardInfosTool';
import { Board } from '../../../DatabaseServices/Entity/Board';
import { LinesType } from '../../../DatabaseServices/Entity/BoardInterface';
import { ObjectId } from '../../../DatabaseServices/ObjectId';
import { ProcessingGroupRecord } from '../../../DatabaseServices/ProcessingGroup/ProcessingGroupRecord';
import { IBoardInfoOptions } from './BoardInfosList';
import { BBSBoardData } from './LookOverBoardInfos';
export interface SortBtnData {
    text: string;
    icon: IconName;
}
export declare const SelectElementIndex: number[];
interface ITitleBannerProps {
    sortBtnData: SortBtnData[];
    style: any;
    handleOrder: Function;
    TitleResize: (e: React.PointerEvent<HTMLDivElement>, title: string) => void;
    searchRes: BBSBoardData;
}
export declare class TitleBanner extends React.Component<ITitleBannerProps> {
    icon: IconName;
    titleRef: React.RefObject<HTMLDivElement>;
    componentDidMount(): void;
    getBtnData: (data: string) => boolean;
    getWidthStyle: (title: string, index: number) => React.CSSProperties;
    AutoWidth: (title: [string, string]) => void;
    render(): JSX.Element;
}
export declare enum PartsType {
    Hole = 0,
    Hardware = 1,
    Area = 2,
    Edge = 3
}
interface IPartsTableProps {
    type: PartsType;
    partsCount: (ICountType | ICountType<Board>)[];
    titles: string[];
    isSort?: boolean;
}
export declare class PartsTable extends React.Component<IPartsTableProps, {}> {
    sortFlag: boolean;
    icon: IconName;
    SortFunc: (a: number | string, b: number | string, asc: boolean) => number;
    handleClick: () => void;
    private renderBody;
    render(): JSX.Element;
}
interface IBBSComponentProps {
    click: (v: string) => void;
    board: Board;
    option: IBoardInfoOptions;
    ModifyDataRecord: (index: number, brData: Board, modifyKey: string, value: string | LinesType | ProcessingGroupRecord[]) => void;
    index: number;
}
interface IBBSSealingComponentProps extends IBBSComponentProps {
    keyName: string;
}
export declare class BBSSealingComponent extends React.Component<IBBSSealingComponentProps> {
    render(): JSX.Element;
}
interface IBBSDrillingComponentProps extends IBBSComponentProps {
    selectOption: string[];
    ToggleBgColor: () => void;
}
export declare class BBSHighDrillingComponent extends React.Component<IBBSDrillingComponentProps> {
    render(): JSX.Element;
}
interface IBBSLinesComponentProps {
    option: IBoardInfoOptions;
    ModifyDataRecord: (index: number, brData: Board, modifyKey: string, value: string | LinesType | ProcessingGroupRecord[]) => void;
    index: number;
    board: Board;
    ToggleBgColor: () => void;
    HandleOnClick: (v: any) => void;
    selectOption: IOptionProps[] | string[];
    optKey: string;
}
export declare class BBSSelectComponent extends React.Component<IBBSLinesComponentProps> {
    render(): JSX.Element;
    private handleChange;
}
interface IBBSProcessGroupItemProps {
    option: IBoardInfoOptions;
    ModifyDataRecord: (index: number, brData: Board, modifyKey: string, value: string | LinesType | ProcessingGroupRecord[]) => void;
    index: number;
    board: Board;
    HandleOnClick: (v?: any) => void;
    realBr: Board;
    processGroupData: Map<string, ObjectId[]>;
}
export declare class BBSProcessGroupItem extends React.Component<IBBSProcessGroupItemProps> {
    private showAlert;
    private removepg;
    private tags;
    componentDidMount(): void;
    render(): JSX.Element;
    private GetRemovable;
    private RemoveTag;
    private updateTags;
    private GetInputVal;
    private HandleAlertOnComfirm;
    private GetTemplatePgName;
}
export declare class BBSRemarksComponent extends React.Component<IBBSComponentProps> {
    render(): JSX.Element;
}
export {};
//# sourceMappingURL=BBSCommon.d.ts.map