import { MessagePort, TransferListItem } from 'worker_threads'; import { ConsoleInterface, LogLevel } from './common/console'; import { ServiceProvider } from './common/serviceProvider'; import './common/serviceProviderExtensions'; export declare class BackgroundConsole implements ConsoleInterface { private readonly _parentPort; private _level; constructor(_parentPort: MessagePort); get level(): LogLevel; set level(value: LogLevel); log(msg: string): void; info(msg: string): void; warn(msg: string): void; error(msg: string): void; protected post(level: LogLevel, msg: string): void; } export declare class BackgroundThreadBase { private readonly _serviceProvider; protected constructor(data: InitializationData, serviceProvider?: ServiceProvider); protected get fs(): import("./common/fileSystem").FileSystem; protected log(level: LogLevel, msg: string): void; protected getConsole(): ConsoleInterface; protected getServiceProvider(): ServiceProvider; protected handleShutdown(): void; } export declare function serializeReplacer(value: any): any; export declare function serialize(obj: any): string; export declare function deserializeReviver(value: any): any; export declare function deserialize(json: string | null): T; export interface MessagePoster { postMessage(value: any, transferList?: ReadonlyArray): void; } export declare function run(code: () => Promise, port: MessagePoster): Promise; export declare function run(code: () => Promise, port: MessagePoster, serializer: (obj: any) => any): Promise; export declare function run(code: () => T, port: MessagePoster): void; export declare function run(code: () => T, port: MessagePoster, serializer: (obj: any) => any): void; export type BackgroundDataHandler = (data: any, port: MessagePort) => void; export declare function getBackgroundWaiter(port: MessagePort, options?: { deserializer?: (v: any) => T; dataHandler?: BackgroundDataHandler; }): Promise; export interface InitializationData { rootUri: string; workspaceRootUri: string; tempFileName: string; serviceId: string; workerIndex: number; cancellationFolderName: string | undefined; runner: string | undefined; } export interface RequestResponse { kind: 'ok' | 'failed' | 'cancelled' | 'data'; data: any; } export interface LogData { level: LogLevel; message: string; }