import { FSBLWindow } from "../../services/window/types";
import DockableWindow from "../../services/window/Docking/dockableWindow";
declare enum groupStates {
    NORMAL = 0,
    MINIMIZING = 1,
    MINIMIZED = 2,
    RESTORING = 3
}
declare type FSBLWindows = Record<string, any>;
/**
 * A type which encapsulates information required to identify a window
 */
declare type WindowIdentifiable = {
    windowName?: string;
    name?: string;
};
export declare class WindowGroup {
    name: string | undefined;
    groupState: number;
    GROUPSTATES: typeof groupStates;
    windows: Record<string, any>;
    interruptRestore: boolean;
    /**
     *
     */
    constructor(params: any);
    destroy(): void;
    setWindows(windows: FSBLWindows): void;
    getWindows(): FSBLWindows;
    addWindow(win: FSBLWindow | DockableWindow): void;
    /**
     *
     * @param arr either a window name or window identifier or a list of window names or identifiers
     */
    removeWindows(arr: any | any[], cb?: Function): void;
    /**
     *
     * @param win either a window name or window identifier
     */
    getWindow(win?: string | WindowIdentifiable): any;
    getDockableWindow(win?: string | WindowIdentifiable): DockableWindow | null;
    getWindowNames(): string[];
    addWindows(arr: any | any[]): void;
    getWindowArray(): any[];
    minimizeAll(): void;
    minimize(params: any): void;
    restoreAll(cb?: Function): any;
    restore(params: any, cb: Function): void;
    /**
     * Brings a group of windows to the front (BTF). In other words, puts those windows on top of any other windows so that they can be seen
     *
     * params: {
     *   restoreWindows: boolean, // If true then windows will attempt to be restored (un-minimized) before being brought to front
     *   windowList: any[],       // The list of windows to BTF. Defaults to the windows that are in this window group. This can be a
     * 							  // list of window names, or a list of actual window instances.
     *   componentType: any 	  // Optionally provide a componentType to BTF only those windows of that type in the list of windows.
     * }
     *
     * @param params window parameters
     */
    bringToFront(params: {
        restoreWindows?: boolean;
        windowList?: any[];
        componentType?: string;
    }, cb?: Function): void;
    hyperFocus(params: {
        windowList: any;
    }): void;
    findAllByComponentType(componentType: any): any[];
    /**
     * Normalizes the way window instances may be obtained.
     *
     * @param win the object instance to use as the window identifier
     * @returns the associated window instance
     */
    getWindowInstance(win: WindowIdentifiable): any;
    /**
     * Gets the window name from a Windowish instance.
     *
     * @param win the window-like object to get the name from
     * @returns the window name, or undefined if the name cannot be found
     */
    getWindowName(win: WindowIdentifiable): string | undefined;
}
export {};
//# sourceMappingURL=windowGroup.d.ts.map