import { Observable } from 'rxjs'; import { ExtensionBroker } from './extension-broker'; import { WorkerExtensionInstance } from './model/extension-instance'; export declare type WorkerVersionArgumentMapper = (method: string, version: number, args: any) => any[]; export interface WorkerResult { returnValue?: T; error?: any; worker: WorkerExtensionInstance; } /** * Defines an abstraction for working with a set of workers given a designated extension target */ export declare class WorkerSet { private extensionBroker; private extensionTarget; private mapArguments?; /** * The source name to use when logging about this service */ private get logSourceName(); /** * Observable to track the creation of our workers */ private workers; /** * Determine if workers were initialized successfully */ private workersInitializedSubject; readonly workersInitialized: Observable; get isWorkersInitialized(): boolean; /** * instantiates a new instance of the AzureCenterService service * @param extensionBroker the extension broker instance * @param extensionTarget the extension target id we want to get workers for * @param mapArguments a function that maps different versions of worker arguments * based on the the versions implemented by a worker @optional @deprecated */ constructor(extensionBroker: ExtensionBroker, extensionTarget: string, mapArguments?: WorkerVersionArgumentMapper); /** * Initializes the workers */ initializeWorkers(): void; /** * Destroys the workers */ destroyWorkers(): void; /** * Calls a method on each worker in and emits when all workers to respond */ all(method: string, ...args: any[]): Observable[]>; /** * Calls a method on each worker in and emits when each worker responds */ each(method: string, ...args: any[]): Observable>; /** * Calls a function on the applicable workers */ private prepareCalls; }