import { IRPCProtocol } from '@opensumi/ide-connection'; import { IExtensionHostService, IExtensionWorkerHost } from '../../../common'; import { IExtensionDescription } from '../../../common/vscode'; interface IOptions { firstParty?: boolean; debug?: boolean; } export declare function createAPIFactory(rpcProtocol: IRPCProtocol, extensionService: IExtensionHostService | IExtensionWorkerHost, _type: string): (extension: IExtensionDescription) => { instrumentOperation: (operationName: string, cb: (operationId: string, ...args: any[]) => any, thisArg?: any) => ((...args: any[]) => any); sendOperationStart: (operationId: string, operationName: string) => void; createUuid: () => number; instrumentSimpleOperation: (operationName: string, cb: (...args: any[]) => any, thisArg?: any) => (...args: any[]) => any; initializeFromJsonFile(jsonFilepath: string, options?: IOptions): void; initialize(extensionId: string, version: string, aiKey: string | string[], options?: IOptions): void; setUserError(err: Error): void; setErrorCode(err: Error, errorCode: number): void; instrumentOperationAsVsCodeCommand(command: string, cb: (...args: any[]) => any, thisArg?: any): any; sendOperationEnd(operationId: string, operationName: string, duration: number, err?: Error): void; sendError(err: Error): void; sendOperationError(operationId: string, operationName: string, err: Error): void; sendInfo(operationId: string, data: { [key: string]: string | number; }): void; instrumentOperationStep(operationId: string, stepName: string, cb: (...args: any[]) => any): any; dispose(): void; addContextProperty(name: string, value: string): void; }; export {}; //# sourceMappingURL=ext.host.api.impl.d.ts.map