import type { RealtimeProvider, RealtimeChannel, RealtimeProviderOptions, RealtimeEvent } from "@synet/patterns/realtime";
import type { WebsocketOptions } from "./websocket-types";
/**
 * WebSocket-based implementation of RealtimeProvider
 */
export declare class WebSocketRealtimeProvider implements RealtimeProvider {
    readonly baseUrl: string;
    private options;
    private channels;
    constructor(baseUrl: string, options?: RealtimeProviderOptions<WebsocketOptions>);
    createChannel<TIn extends RealtimeEvent = RealtimeEvent, TOut extends RealtimeEvent = RealtimeEvent>(topic: string, options?: RealtimeProviderOptions<WebsocketOptions>): RealtimeChannel<TIn, TOut>;
    /**
     * Remove a channel
     */
    removeChannel(channel: RealtimeChannel): Promise<void>;
    getChannels(): RealtimeChannel[];
    disconnect(): Promise<void>;
    private getWebSocketUrl;
}
