import { WebSocket } from '@cloudpss/fetch';
import { RpcSocket } from './socket.js';
import type { RpcMetadata } from './types/payload.js';
import type { RpcObject } from './types/utils.js';
/** 由 WS Client 建立的 RPC 连接 */
export declare class RpcClientSocket<TRemote extends object, TLocal extends object> extends RpcSocket<TRemote, TLocal> {
    #private;
    /** 建立连接使用的 WebSocket 实现 */
    static WebSocket: typeof WebSocket | null;
    constructor(url: string | URL, metadata?: RpcMetadata, local?: RpcObject<TLocal>);
    /** @inheritdoc */
    protected get local(): RpcObject<TLocal> | undefined;
    readonly url: string;
    /** 等待连接成功或失败 */
    get connected(): Promise<void>;
    /** @inheritdoc */
    protected authSocket(): Promise<RpcMetadata>;
    /** @inheritdoc */
    protected onClose(ev: CloseEvent): void;
    /** 建立连接 */
    protected connect(): void;
}
//# sourceMappingURL=client.d.ts.map