/// <reference types="react" />
import { BasePageData, PropsOfPage, StackHeaderFields } from "../Page/BasePageData";
import { Callback } from "../Types";
import { StackFactory } from "./Stack";
import { PageEventType } from "../Page/Events";
import { INaming } from "../NamingCaption";
import { IArmisaPageKey } from "../ArmisaImportPage";
export declare class MainStacksFactory {
    pageData: BasePageData;
    initializeFormStartPage: boolean;
    initializeHookStartPage: boolean;
    initializeTabsOfStacks: boolean;
    initializeStatusBarIcons: boolean;
    initializeTabPage: boolean;
    currentStackMainDivHeadRef: React.RefObject<HTMLDivElement> | undefined;
    currentStackMainDivBodyRef: React.RefObject<HTMLDivElement> | undefined;
    currentStackMainDivHead: HTMLDivElement | null;
    updateTextOfStackHeaderInitial: () => void;
    updateTextOfStackHeader: (changeHeadOfStack?: number) => void;
    constructor(pageData: BasePageData);
    stacks: StackFactory[];
    currentStack?: StackFactory;
    gotoMainStack: () => void;
    selectThisStack: (stack: StackFactory) => void;
    closeThisStack: (stack: StackFactory) => void;
    trigger: (eventName: PageEventType, ...args: any) => void;
    on: (eventName: PageEventType, callBack: Callback) => void;
    removeOn: (eventName: PageEventType) => void;
    addNewStack: {
        (pageKey: IArmisaPageKey, props?: PropsOfPage, caption?: INaming, stackHeaderFields?: undefined): void;
        (pageKey: IArmisaPageKey, props?: PropsOfPage, caption?: string, stackHeaderFields?: undefined): void;
        (pageKey: IArmisaPageKey, props?: PropsOfPage, caption?: undefined, stackHeaderFields?: StackHeaderFields[]): void;
    };
    static buildNew(pageData: BasePageData): MainStacksFactory;
}
