import { WorkerServerConnection } from "./worker-server-connection.js";
import { IEventDispatcher } from "../shared/normalized-event-target";
interface WorkerProviderRef {
    stop(): void;
    start(): void;
}
export declare function startWorkerProvider<T extends object>(target: T, serverConnection: WorkerServerConnection): WorkerProviderRef;
export declare function createWorkerProvider<T extends object>(target: T, serverConnection: WorkerServerConnection): WorkerProviderRef;
export declare abstract class EventDispatcher<TEvent extends object> implements IEventDispatcher<TEvent> {
    /**
     * @private
     */
    ___typescriptInferenceHack: TEvent;
    dispatchEvent<K extends keyof TEvent>(type: K, data: TEvent[K]): void;
}
export {};
