import type { IEvent, IEventSet, IEventStorageReader, IEventStore, IExtendableLogger, ILogger, IViewLocker } from '../interfaces/index.ts'; import type { IProxyProjection, IWorkerProjection, ProxyProjectionParams } from './interfaces/index.ts'; import * as Comlink from 'comlink'; /** * Projection being automatically created in the main thread to proxy events * and view calls to AbstractWorkerThreadProjection instance */ export declare class WorkerProxyProjection = IWorkerProjection> implements IProxyProjection { #private; static RESTORE_BATCH_SIZE: number; viewLocker?: IViewLocker; get remoteProjection(): Comlink.Remote; get view(): Comlink.Remote; constructor({ workerModulePath, messageTypes, logger }: ProxyProjectionParams & { logger?: IExtendableLogger | ILogger; }); subscribe(eventStore: IEventStore): void; restore(eventStore: IEventStorageReader): Promise; /** * Restore view state from not-yet-projected events. * * Events are projected in batches to reduce worker RPC overhead. * The batch size can be configured through {@link WorkerProxyProjection.RESTORE_BATCH_SIZE}. */ protected _restore(eventStore: IEventStorageReader): Promise; protected _onWorkerError: (error: unknown) => void; protected _onWorkerExit: (exitCode: number) => void; ensureWorkerReady(): Promise; project(event: IEvent): Promise; protected _projectBatch(batch: IEventSet): Promise; dispose(): void; }