///
import * as $dara from '@darabonba/typescript';
import { AwapMessage, AwapMessageType } from './awap';
import { GeneralMessage } from './general';
export declare class WebSocketClient {
private wsClient;
private response;
private pendingRequests;
constructor(wsClient: $dara.DefaultWebSocketClient, response: $dara.Response);
static createWebSocketClient(client: any): WebSocketClient | null;
getResponse(): $dara.Response;
close(): Promise;
reconnect(): Promise<$dara.Response>;
reconnectGracefully(): Promise<$dara.Response>;
disconnect(): Promise;
isConnected(): boolean;
validate(): void;
getSessionInfo(): $dara.WebSocketSessionInfo | null;
sendAwapTextMessage(message: AwapMessage): Promise;
sendRawAwapTextMessage(msgType: AwapMessageType, payload: any): Promise;
sendRawAwapTextMessageWithId(msgType: AwapMessageType, id: string, payload: any): Promise;
sendAwapBinaryMessage(message: AwapMessage): Promise;
sendRawAwapBinaryMessage(msgType: AwapMessageType, payload: any): Promise;
sendRawAwapBinaryMessageWithId(msgType: AwapMessageType, id: string, payload: any): Promise;
sendAwapRequestWithAck(message: AwapMessage, timeoutMs: number): Promise;
sendRequest(ackID: string, messageText: string, timeoutMs: number): Promise;
completeRequest(ackID: string, response: any): boolean;
sendGeneralTextMessage(text: string): Promise;
sendGeneralBinaryMessage(data: Buffer): Promise;
}
export declare function createWebSocketClient(client: any): WebSocketClient | null;
export declare function newWebSocketClient(wsClient: $dara.DefaultWebSocketClient, response: $dara.Response): WebSocketClient;
export type { AwapMessage, GeneralMessage };