/// <reference types="react" />
import { INaming } from "../NamingCaption";
import { BasePageData } from "../Page/BasePageData";
export type StackIconType = undefined | 'none' | 'home' | 'new' | 'view' | 'edit' | 'delete' | 'cut' | 'copy' | 'past' | 'open' | 'close' | 'columns' | 'ok' | 'save' | 'print' | 'printCrystal' | 'sortNumber' | 'drillDown' | 'contextMenu' | 'exportToExcel' | 'importFromExcel' | 'insertRowTop' | 'insertRowBottom' | 'removeRow' | 'refresh' | 'nextPage' | 'previousPage' | 'next' | 'back' | 'nextSameLevel' | 'backSameLevel' | 'function' | 'sum';
export declare abstract class StackIcon {
    pageData: BasePageData;
    id: number;
    type: StackIconType;
    size: number;
    tabIndex?: number | undefined;
    naming?: INaming | undefined;
    role?: string | undefined;
    subRole?: string | undefined;
    disabled?: boolean | undefined;
    name: string;
    caption?: string;
    onClick?: (e: React.MouseEvent) => void;
    constructor(pageData: BasePageData, id: number, type: StackIconType, size: number, tabIndex?: number | undefined, naming?: INaming | undefined, role?: string | undefined, subRole?: string | undefined, disabled?: boolean | undefined);
    static buildNewIcon(pageData: BasePageData, id: number, type: StackIconType, onClick?: (e: React.MouseEvent) => void, size?: number, tabIndex?: number, popup?: JSX.Element, naming?: INaming, role?: string, subRole?: string, disabled?: boolean): StackMenuItemClass;
    static buildNewSubIcon(parent: StackMenuItemClass, pageData: BasePageData, id: number, type: StackIconType, naming: INaming, onClick?: (e: React.MouseEvent) => void, size?: number, tabIndex?: number, role?: string, subRole?: string, disabled?: boolean): StackSubMenuItemClass;
    static buildNewSubChildIcon(parent: StackSubMenuItemClass, pageData: BasePageData, id: number, type: StackIconType, naming: INaming, onClick?: (e: React.MouseEvent) => void, size?: number, tabIndex?: number, role?: string, subRole?: string, disabled?: boolean): StackSubMenuItemChildClass;
    static buildNewSeparator(pageData: BasePageData, id: number): StackSeparator;
    static buildNewSeparatorPrintReportState(parent: StackMenuItemClass, pageData: BasePageData, id: number, action: (index: number) => void, size?: number, tabIndex?: number): StackSeparatorPrintState;
    static buildNewFontPrintName(parent: StackMenuItemClass, pageData: BasePageData, id: number, action: (index: number) => void, size?: number, tabIndex?: number): StackFontPrintName;
}
export declare class StackMenuItemClass extends StackIcon {
    toolTip: boolean;
    popup?: JSX.Element | undefined;
    subMenuItems: (StackSubMenuItemClass | StackSeparatorPrintState | StackFontPrintName)[];
    constructor(pageData: BasePageData, id: number, type: StackIconType, toolTip: boolean, popup?: JSX.Element | undefined, naming?: INaming, size?: number, tabIndex?: number, role?: string, subRole?: string, disabled?: boolean);
}
export declare class StackSubMenuItemClass extends StackIcon {
    parent: StackMenuItemClass;
    subMenuItemsChildItem: StackSubMenuItemChildClass[];
    constructor(parent: StackMenuItemClass, pageData: BasePageData, id: number, type: StackIconType, naming: INaming, size?: number, tabIndex?: number, role?: string, subRole?: string, disabled?: boolean);
}
export declare class StackSubMenuItemChildClass extends StackIcon {
    parent: StackSubMenuItemClass;
    constructor(parent: StackSubMenuItemClass, pageData: BasePageData, id: number, type: StackIconType, naming: INaming, size?: number, tabIndex?: number, role?: string, subRole?: string, disabled?: boolean);
}
export declare class StackSeparator extends StackIcon {
}
export declare class StackSeparatorPrintState extends StackIcon {
    parent: StackMenuItemClass;
    action: (index: number) => void;
    constructor(parent: StackMenuItemClass, pageData: BasePageData, id: number, action: (index: number) => void, size?: number, tabIndex?: number);
}
export declare class StackFontPrintName extends StackIcon {
    parent: StackMenuItemClass;
    action: (index: number) => void;
    constructor(parent: StackMenuItemClass, pageData: BasePageData, id: number, action: (index: number) => void, size?: number, tabIndex?: number);
}
