import { VSBuffer } from "../../../../base/common/buffer.js";
import { CancellationToken } from "../../../../base/common/cancellation.js";
import { Event } from "../../../../base/common/event.js";
import { IElementData } from "../../../../platform/native/common/native.js";
import { IOpenEmptyWindowOptions, IWindowOpenable, IOpenWindowOptions, IPoint, IRectangle } from "../../../../platform/window/common/window.js";
export declare const IHostService: import("../../../../platform/instantiation/common/instantiation.js").ServiceIdentifier<IHostService>;
export interface IHostService {
    readonly _serviceBrand: undefined;
    readonly onDidChangeFocus: Event<boolean>;
    readonly hasFocus: boolean;
    hadLastFocus(): Promise<boolean>;
    focus(targetWindow: Window, options?: {
        force: boolean;
    }): Promise<void>;
    readonly onDidChangeActiveWindow: Event<number>;
    readonly onDidChangeFullScreen: Event<{
        windowId: number;
        fullscreen: boolean;
    }>;
    openWindow(options?: IOpenEmptyWindowOptions): Promise<void>;
    openWindow(toOpen: IWindowOpenable[], options?: IOpenWindowOptions): Promise<void>;
    toggleFullScreen(targetWindow: Window): Promise<void>;
    moveTop(targetWindow: Window): Promise<void>;
    getCursorScreenPoint(): Promise<{
        readonly point: IPoint;
        readonly display: IRectangle;
    } | undefined>;
    restart(): Promise<void>;
    reload(options?: {
        disableExtensions?: boolean;
    }): Promise<void>;
    close(): Promise<void>;
    withExpectedShutdown<T>(expectedShutdownTask: () => Promise<T>): Promise<T>;
    getScreenshot(rect?: IRectangle): Promise<VSBuffer | undefined>;
    getElementData(rect: IRectangle, token: CancellationToken): Promise<IElementData | undefined>;
    getNativeWindowHandle(windowId: number): Promise<VSBuffer | undefined>;
}
