import { BaseWindow } from "./BaseWindow";
import { WindowIdentifier, WindowBounds } from "../../../services/window/types";
import { StandardErrorCallback, StandardPromise } from "../../../types";
/**
 * NativeWindow
 */
declare class NativeWindow extends BaseWindow {
    loggerChannel: string;
    location: WindowBounds | null;
    key: string;
    saveOnBoundsChanged: boolean;
    movements: any[];
    launchedByApp: boolean;
    lastLocation: WindowBounds | null;
    events: any;
    lastMinimized: number;
    lastRestored: number;
    executablePath: string | null;
    descriptor: string | null;
    spawnedByContainer: boolean;
    maximizing: boolean;
    restoreBounds: WindowBounds | null;
    windowDescriptor: any;
    windowIdentifier: WindowIdentifier;
    opacity: number;
    alwaysOnTop: boolean;
    frame: false;
    uuid: string;
    /**
     * @param {*} params
     * @param {string} [params.uuid]
     * @param {object} [params.location]
     * @param {string} [params.launchedByApp]
     *
     */
    constructor(params: any);
    removeListeners(): void;
    _setResizable(): void;
    _triggerBoundsChangedFromAssimilation(err: any, response: any): void;
    bindFunctions(): void;
    endMovementHandler(err: any, message: any): void;
    _addEventListener(params: any, cb?: Function): void;
    addEventListener(event: any, handler?: Function): void;
    _removeEventListener(params: any, cb?: Function): void;
    removeEventListener(event: any, handler?: Function): void;
    /**
     * Every other kind of window has listeners for bounds change end that then save
     * the window's new state. Because assimilated windows don't, we must override
     * this function and call the custom save function.
     *
     */
    stopMove(): void;
    _setBounds(params: any, cb?: Function): void;
    _hide(params: any, cb?: Function): void;
    _focus(params: any, cb?: Function): void;
    _minimize(params: any, cb?: Function): any;
    _maximize(params: any, cb?: Function): any;
    private setNormal;
    _restore(params: any, cb?: StandardErrorCallback<{
        shouldContinue: boolean;
    }>): StandardPromise<{
        shouldContinue: boolean;
    }>;
    _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;
    }>;
    _show(params: {
        invokedByParent?: boolean;
        windowIdentifier?: WindowIdentifier;
        shouldMaximize?: boolean;
        shouldRestore?: boolean;
        saveState?: boolean;
    }, cb?: StandardErrorCallback<{
        shouldContinue: boolean;
    }>): StandardPromise<{
        shouldContinue: boolean;
    }>;
    _showAt(position: any, params: any, cb?: Function): void;
    _bringToFront(params: any, cb?: Function): void;
    _setOpacity(params: any, cb?: Function): void;
    _alwaysOnTop(params: any, cb?: Function): Promise<any>;
    /**
     *
     * 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;
    /**
     * Returns true if the window is visible. False otherwise.
     * @param {*} params Currently unused
     * @param {*} callback calls back with true if visible, false if not.
     */
    _isShowing(params?: {}, callback?: Function): boolean;
    disableFrame(cb?: Function): void;
    getMousePosition(cb?: Function): void;
    _saveWindowOptions(): void;
    _getBoundsFromSystem(params: any, cb?: Function): Promise<{
        err: string;
        data: WindowBounds;
    }>;
    _getBounds(params: {
        invokedByParent?: any;
        windowIdentifier?: any;
    }, cb?: StandardErrorCallback<any>): StandardPromise<any>;
    _updateOptions(params: any, cb?: Function): void;
}
export default NativeWindow;
//# sourceMappingURL=externalWindowWrapper.d.ts.map