import { TransportOptions, TransferableWorker, BaseInteraction } from '../interface';
import { Transport } from '../transport';
interface ServiceWorkerClientId extends TransferableWorker {
    _clientId?: string;
}
export interface ServiceWorkerClientTransportOptions extends Partial<TransportOptions<TransferableWorker>> {
    /**
     * A service worker instance for data transport.
     */
    worker: ServiceWorker;
    /**
     * Compatibility with unstable serialization in Safari
     */
    useOnSafari?: boolean;
}
export interface ServiceWorkerServiceTransportOptions extends Partial<TransportOptions<ServiceWorkerClientId>> {
    /**
     * Compatibility with unstable serialization in Safari
     */
    useOnSafari?: boolean;
}
export declare abstract class ServiceWorkerClientTransport<T extends BaseInteraction = any> extends Transport<T> {
    constructor(_options: ServiceWorkerClientTransportOptions);
}
export declare abstract class ServiceWorkerServiceTransport<T extends BaseInteraction = any> extends Transport<T> {
    constructor(_options?: ServiceWorkerServiceTransportOptions);
}
export declare const ServiceWorkerTransport: {
    Client: typeof ServiceWorkerClientTransport;
    Service: typeof ServiceWorkerServiceTransport;
};
export {};
//# sourceMappingURL=serviceWorkerTransport.d.ts.map