import type { TransportOptions, TransferableWorker, BaseInteraction } from '../interface';
import { Transport } from '../transport';
type ClientCallback = () => void | Promise<void>;
export interface WorkerMainTransportOptions extends Partial<TransportOptions<TransferableWorker>> {
    /**
     * Pass web worker using data transport.
     */
    worker: Worker;
}
export interface WorkerInternalTransportOptions extends Partial<TransportOptions<TransferableWorker>> {
}
export declare abstract class WorkerMainTransport<T extends BaseInteraction = any> extends Transport<T> {
    constructor(_options: WorkerMainTransportOptions);
    private _connected;
    private _handleConnectCallbacks;
    private _onConnectCallback;
    onConnect(callback: ClientCallback): void | Promise<void> | (() => void);
}
export declare abstract class WorkerInternalTransport<T extends BaseInteraction = any> extends Transport<T> {
    constructor(_options?: WorkerInternalTransportOptions);
    private _handleConnectCallbacks;
    private _connected;
    private _onConnectCallback;
    onConnect(callback: ClientCallback): void | Promise<void> | (() => void);
}
export declare const WorkerTransport: {
    Main: typeof WorkerMainTransport;
    Worker: typeof WorkerInternalTransport;
};
export {};
//# sourceMappingURL=workerTransport.d.ts.map