import { IDisposable } from "@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle"; import { BrandedService, IConstructorSignature } from "@codingame/monaco-vscode-api/vscode/vs/platform/instantiation/common/instantiation"; import { ExtensionHostKind } from "@codingame/monaco-vscode-api/vscode/vs/workbench/services/extensions/common/extensionHostKind"; import { IExtensionHostProxy } from "@codingame/monaco-vscode-api/vscode/vs/workbench/services/extensions/common/extensionHostProxy"; import { IInternalExtensionService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/services/extensions/common/extensions"; import { IRPCProtocol, ProxyIdentifier } from "@codingame/monaco-vscode-api/vscode/vs/workbench/services/extensions/common/proxyIdentifier"; export interface IExtHostContext extends IRPCProtocol { readonly remoteAuthority: string | null; readonly extensionHostKind: ExtensionHostKind; } export interface IInternalExtHostContext extends IExtHostContext { readonly internalExtensionService: IInternalExtensionService; _setExtensionHostProxy(extensionHostProxy: IExtensionHostProxy): void; _setAllMainProxyIdentifiers(mainProxyIdentifiers: ProxyIdentifier[]): void; } export type IExtHostNamedCustomer = [ ProxyIdentifier, IExtHostCustomerCtor ]; export type IExtHostCustomerCtor = IConstructorSignature; export declare function extHostNamedCustomer(id: ProxyIdentifier): (ctor: { new (context: IExtHostContext, ...services: Services): T; }) => void; export declare function extHostCustomer(ctor: { new (context: IExtHostContext, ...services: Services): T; }): void; export declare namespace ExtHostCustomersRegistry { function getNamedCustomers(): IExtHostNamedCustomer[]; function getCustomers(): IExtHostCustomerCtor[]; }