/// <reference types="node" />
import EventEmitter from "events";
type SmartWebsocketOptions = {
    reconnect?: boolean;
    reconnectMaxAttempts?: number;
    reconnectDelay?: number;
    logger?: (message: string, ...args: unknown[]) => void;
};
export declare class SmartWebsocket extends EventEmitter {
    private ws;
    private url;
    private reconnectAttempts;
    private _connected;
    private reconnect;
    private reconnectMaxAttempts;
    private reconnectDelay;
    logger: (message: string, ...args: unknown[]) => void;
    constructor(url: string, options?: SmartWebsocketOptions);
    connect(): Promise<WebSocket>;
    connected(): Promise<WebSocket>;
    send(message: unknown): Promise<void>;
    close(): void;
}
export {};
//# sourceMappingURL=SmartWebsocket.d.ts.map