import { FinsembleWindow } from "../../common/FinsembleWindow";
import { WindowIdentifier } from "../../platform/services/window/types";
import { StandardError } from "../../types";
import { ResponderMessage } from "../routerClient";
import { StoreModel } from "../StoreModel";
export declare class DialogManagerClientController {
    initialized: boolean;
    /**
     * Can be used to set a specific timeout
     */
    userInputTimeout: number | null;
    /**
     * A global store used to track which windows are registered as dialogs and their state.
     * Dialogs are put in the "available" pool when they are available for use. They are put
     * in the "open" pool when they are in use.
     */
    DialogStore: StoreModel | null;
    /**
     * Will be set to true if the current window is a dialog
     */
    isDialog: boolean;
    /**
     * Contains a unique channel name that a dialog can use to communicate back to
     * its originating window. The originating window creates the channel as
     * a query responder.
     */
    RESPONDER_CHANNEL: string | null;
    /**
     * Used to send a message back to whoever opened this dialog
     */
    openerMessage: ResponderMessage | null;
    /**
     * Same as FEAGlobals.finsembleWindow
     */
    finsembleWindow: FinsembleWindow | null;
    /**
     * Will be set with the spawn data, which contains the input params and responseChannel
     */
    spawnData: any;
    /**
     * Checks whether the window is a dialog, setting this.isDialog to true or false
     * @param {cb} cb The callback to be invoked after the method completes successfully.
     */
    checkIfWindowIsDialog(cb?: (err?: StandardError) => void): Promise<void>;
    /**
     * Registers the window as a dialog with the global store. If the component is incapable of being used as a dialog (this is set in the component's config), the callback is immediately invoked.
     *
     * **Note:** This method checks whether the calling window is a dialog.
     * @param {function} callback The callback to be invoked after the method completes successfully.
     */
    registerWithStore(cb?: () => void): Promise<void>;
    /**
     * Establishes a connection to the distributed store that is used
     * by all dialogs. This function may be called many times but will
     * only initialize one time.
     */
    initializeOnce(): Promise<void>;
    /**
     * Creates the global store if it doesn't exist.
     * @param {function} callback
     */
    createStore(cb?: () => void): Promise<void>;
    /**
     */
    getFinsembleWindow(cb?: () => void): Promise<void>;
    getAvailableDialog(type: string, cb?: (dialog: WindowIdentifier | null) => void): Promise<WindowIdentifier | null>;
    /**
     * State management - just moves an opened dialog back to the "available" pool.
     * @param {object} identifier window identifier of the dialog.
     */
    moveDialogFromOpenedToAvailable(identifier: WindowIdentifier): Promise<string | null>;
    /**
     * State management - just moves an available dialog out of the "available" pool.
     * @param {object} identifier window identifier of the dialog.
     */
    moveDialogFromAvailableToOpened(identifier: WindowIdentifier): Promise<string | null>;
}
//# sourceMappingURL=DialogManagerClientController.d.ts.map