/*---------------------------------------------------------------------------------------------
 *  Copyright (c) Microsoft Corporation. All rights reserved.
 *  Licensed under the MIT License. See License.txt in the project root for license information.
 *--------------------------------------------------------------------------------------------*/

import { SerializedError } from '@sussudio/base/common/errors.mjs';
import { Event } from '@sussudio/base/common/event.mjs';
export declare const IExtensionHostStarter: import('../../instantiation/common/instantiation.mjs').ServiceIdentifier<IExtensionHostStarter>;
export declare const ipcExtensionHostStarterChannelName = 'extensionHostStarter';
export interface IExtensionHostProcessOptions {
	responseWindowId: number;
	responseChannel: string;
	responseNonce: string;
	env: {
		[key: string]: string | undefined;
	};
	detached: boolean;
	execArgv: string[] | undefined;
	silent: boolean;
}
export interface IExtensionHostStarter {
	readonly _serviceBrand: undefined;
	onDynamicStdout(id: string): Event<string>;
	onDynamicStderr(id: string): Event<string>;
	onDynamicMessage(id: string): Event<any>;
	onDynamicError(id: string): Event<{
		error: SerializedError;
	}>;
	onDynamicExit(id: string): Event<{
		code: number;
		signal: string;
	}>;
	canUseUtilityProcess(): Promise<boolean>;
	createExtensionHost(useUtilityProcess: boolean): Promise<{
		id: string;
	}>;
	start(id: string, opts: IExtensionHostProcessOptions): Promise<void>;
	enableInspectPort(id: string): Promise<boolean>;
	kill(id: string): Promise<void>;
}
