interface ClientConfig {
    wsPort?: number;
    wsHost?: string;
    silent?: boolean;
}

type ExecProtocolRawFn = (message: Uint8Array) => Promise<Uint8Array>;
type SocketEvents = {
    onOpen?: () => void;
    onClose?: () => void;
    onError?: (error: Event) => void;
    onMessage?: (message: Uint8Array) => void;
};
type Socket = {
    close: () => void;
};
type ConnectProxyOptions = {
    events?: SocketEvents;
} & ClientConfig;
declare const connectProxy: (execProtocolRaw: ExecProtocolRawFn, { events, ...config }?: ConnectProxyOptions) => Socket;

export { type ConnectProxyOptions, type ExecProtocolRawFn, type SocketEvents, connectProxy };
