/*---------------------------------------------------------------------------------------------
 *  Copyright (c) Microsoft Corporation. All rights reserved.
 *  Licensed under the MIT License. See License.txt in the project root for license information.
 *--------------------------------------------------------------------------------------------*/
import { MessagePortMain } from 'electron';
import { Event } from "../../../base/common/event.mjs";
import { Disposable } from "../../../base/common/lifecycle.mjs";
import { IProcessEnvironment } from "../../../base/common/platform.mjs";
import { IEnvironmentMainService } from "../../environment/electron-main/environmentMainService.mjs";
import { ILifecycleMainService } from "../../lifecycle/electron-main/lifecycleMainService.mjs";
import { ILogService } from "../../log/common/log.mjs";
import { IProtocolMainService } from "../../protocol/electron-main/protocol.mjs";
import { ISharedProcess } from "../node/sharedProcess.mjs";
import { IThemeMainService } from "../../theme/electron-main/themeMainService.mjs";
import { WindowError } from "../../window/electron-main/window.mjs";
import { IUserDataProfilesService } from "../../userDataProfile/common/userDataProfile.mjs";
import { IPolicyService } from "../../policy/common/policy.mjs";
export declare class SharedProcess extends Disposable implements ISharedProcess {
    private readonly machineId;
    private userEnv;
    private readonly environmentMainService;
    private readonly userDataProfilesService;
    private readonly lifecycleMainService;
    private readonly logService;
    private readonly policyService;
    private readonly themeMainService;
    private readonly protocolMainService;
    private readonly firstWindowConnectionBarrier;
    private window;
    private windowCloseListener;
    private readonly _onDidError;
    readonly onDidError: Event<{
        type: WindowError;
        details?: {
            reason: string;
            exitCode: number;
        } | undefined;
    }>;
    constructor(machineId: string, userEnv: IProcessEnvironment, environmentMainService: IEnvironmentMainService, userDataProfilesService: IUserDataProfilesService, lifecycleMainService: ILifecycleMainService, logService: ILogService, policyService: IPolicyService, themeMainService: IThemeMainService, protocolMainService: IProtocolMainService);
    private registerListeners;
    private onWindowConnection;
    private onWorkerConnection;
    private onWillShutdown;
    private send;
    private _whenReady;
    whenReady(): Promise<void>;
    private _whenIpcReady;
    private get whenIpcReady();
    private createWindow;
    private registerWindowListeners;
    connect(): Promise<MessagePortMain>;
    toggle(): Promise<void>;
    isVisible(): boolean;
    private isAlive;
}
