import { BaseWindow } from "./BaseWindow";
import { WindowIdentifier } from "../types";
import { StandardErrorCallback, StandardPromise } from "../../../types";
declare class StackedWindow extends BaseWindow {
    params: any;
    _listeners: object;
    identifier: WindowIdentifier;
    alwaysOnTop: boolean;
    constructor(params: any);
    removeListeners(): void;
    _setResizable(): void;
    addListeners(): void;
    _addEventListener(params: any, handler?: Function): void;
    addEventListener(event: any, handler?: Function): void;
    _removeEventListener(params: any, handler?: Function): void;
    removeEventListener(event: any, handler?: Function): void;
    eventChannelName(channelTopic: any): string;
    bindAllFunctions(): void;
    listenForBoundsChanging(): void;
    /**
     * Handles common housekeeping checks and modifications on params at the beginning of each private window function
     *
     * @param {string} methodName method name (e.g. "minimize", "maximize")
     * @param {object} params
     * @memberof StackedWindow
     * @private
     */
    _privatePreface<T = any>(methodName: string, params: T): T & {
        stackedWindowIdentifier: WindowIdentifier;
        doNotTransmitEvent?: boolean;
    };
    _minimize(params: any, callback?: Function): Promise<unknown>;
    _maximize(params: any, callback?: Function): Promise<unknown>;
    _restore(params: any, cb?: StandardErrorCallback<{
        shouldContinue: boolean;
    }>): StandardPromise<{
        shouldContinue: boolean;
    }>;
    _focus(params: {
        stackedWindowIdentifier: {
            windowName: string | number;
        };
        windowIdentifier: {
            windowName: string | number;
        };
        invokedByParent: boolean;
    }, callback?: Function): Promise<unknown>;
    _bringToFront(params: any, callback?: Function): Promise<unknown>;
    _saveWindowOptions(params: any, callback?: Function): Promise<unknown>;
    _setBounds(params: any, callback?: Function): Promise<unknown>;
    _getBoundsFromSystem(params: any, callback?: Function): Promise<unknown>;
    _getBounds(params: {
        invokedByParent?: any;
        windowIdentifier?: any;
    }, cb?: StandardErrorCallback<any>): StandardPromise<any>;
    /**
     * Is Window Visible?
     * @param {*} params Currently unused
     * @param {*} callback returns true in response if showing, false otherwise
     */
    _isShowing(params: any, callback?: Function): Promise<unknown>;
    _updateOptions(params: any, callback?: Function): Promise<unknown>;
    _hide(params: any, callback?: Function): Promise<unknown>;
    _show(params: {
        invokedByParent?: boolean;
        windowIdentifier: WindowIdentifier;
        shouldMaximize?: boolean;
        shouldRestore?: boolean;
        saveState?: boolean;
    }, cb?: StandardErrorCallback<{
        shouldContinue: boolean;
    }>): StandardPromise<{
        shouldContinue: boolean;
    }>;
    _showAt(params: any, callback?: Function): Promise<unknown>;
    _close(params?: {
        fromSystem?: any;
        removeFromWorkspace?: any;
        stackedWindowIdentifier?: any;
        invokedByParent?: any;
        ignoreParent?: any;
        windowIdentifier?: any;
        noDocking?: any;
        force?: boolean;
    }, cb?: StandardErrorCallback<{
        shouldContinue: boolean;
    }>): StandardPromise<{
        shouldContinue: boolean;
    }>;
    _alwaysOnTop(params: any, callback?: Function): Promise<unknown>;
    /**
     *
     * Returns true if the window is always on top. False otherwise.
     *
     * Disable eslint below because params is undefined, but we don't want to refactor the other calls to expect the 1st param to equal the callback.
     */
    _isAlwaysOnTop(params?: {}, callback?: Function): boolean;
    _setOpacity(params: any, callback?: Function): Promise<unknown>;
    /**
     * Handles common housekeeping checks and modifications on params at the beginning of each private window-management function
     *
     * @param {string} methodName method name (e.g. "minimize", "maximize")
     * @param {object} params
     * @memberof StackedWindow
     * @private
     */
    _privateManagementPreface(methodName: any, params: any): any;
    /**
     * Temporary function until more cleanup done. Handles common housekeeping checks and modifications on params at the beginning of each private window-management function
     *
     * @param {string} methodName method name (e.g. "minimize", "maximize")
     * @param {object} params
     * @memberof StackedWindow
     * @private
     */
    _newPrivateManagementPreface(methodName: any, params: any): any;
    _removeWindow(params: any, callback?: Function): Promise<unknown>;
    /**
     * Adds window as a child to a stacked window.  Adds to the top of the stack, or if specified to a specific location in the stack;
     *
     * @param {object=} params
     * @param {object} params.stackedWindowIdentifier stacked window to operate on stacked window to operate on
     * @param {object} params.windowIdentifier window to add
     * @param {number=} params.position the location in the stack to push the window.  Location 0 is the bottom of the stack. Defaults to the top of stack.
     * @param {boolean=} params.noSave if true then don't save the store after updating it (will be saved by caller)
     * @param {function=} callback function(err)
     * @memberof StackedWindow
     */
    addWindow(params: any, callback?: Function): Promise<unknown>;
    /**
     * Removes a child window from a stacked window.  If removed window was visible, then the bottom child window (position 0) in stack will be made visible.
     *
     * @param {object} params
.	 * @param {object} params.stackedWindowIdentifier stacked window to operate on
     * @param {object} params.windowIdentifier window to remove
     * @param {boolean=} params.noDocking if true then do not register removed window with docking (the workspace is unaffected)
     * @param {function=} callback function(err)
     * @memberof StackedWindow
     */
    removeWindow(params: any, callback?: Function): Promise<unknown>;
    /**
     * Removes a window from the stack then closes it.  If removed window was visible, then the bottom child window (position 0) in stack will be made visible.
     *
     * @param {object} params
.	 * @param {object} params.stackedWindowIdentifier stacked window to operate on
     * @param {object} params.windowIdentifier window to delete
     * @param {function=} callback function(err)
     * @memberof StackedWindow
     */
    deleteWindow(params: any, callback?: Function): Promise<unknown>;
    /**
     * Sets the visible window within the stack.  The previously visible window in stack will be automatically hidden.
     *
     * @param {object} params
.	 * @param {object} params.stackedWindowIdentifier stacked window to operate on
     * @param {object} params.windowIdentifier
     * @param {function=} callback function(err)
     * @memberof StackedWindow
     */
    setVisibleWindow(params: any, callback?: Function): Promise<unknown>;
    /**
     * Reorders the stack, but odes not affect visibility
     *
     * @param {object} params
.	 * @param {object} params.stackedWindowIdentifier stacked window to operate on
     * @param {array} params.windowIdentifiers array of windowIdentifiers which provides the new order
     * @param {function=} callback function(err)
     * @memberof StackedWindow
     */
    reorder(params: any, callback?: Function): Promise<unknown>;
    /**
     * Reorders the stack, but odes not affect visibility
     *
     * @param {object} params
.	 * @param {object} params.stackedWindowIdentifier stacked window to operate on
     * @param {array} params.windowIdentifiers array of windowIdentifiers which provides the new order
     * @param {function=} callback function(err)
     * @memberof StackedWindow
     */
    stopMove(params?: {}, callback?: Function): Promise<unknown>;
    /**
 * Reorders the stack, but odes not affect visibility
 *
     * @param {object} params
.	 * @param {object} params.stackedWindowIdentifier stacked window to operate on
 * @param {array} params.windowIdentifiers array of windowIdentifiers which provides the new order
 * @param {function=} callback function(err)
 * @memberof StackedWindow
 */
    startMove(params?: {}, callback?: Function): Promise<unknown>;
}
export default StackedWindow;
//# sourceMappingURL=stackedWindowWrapper.d.ts.map