///
import * as $dara from '@darabonba/typescript';
export declare type AwapMessageType = string;
export declare type AwapMessageFormat = 'text' | 'binary';
export interface AwapMessage {
type: AwapMessageType;
id: string;
headers?: {
[key: string]: string;
};
payload?: any;
format?: AwapMessageFormat;
}
export interface AwapWebSocketHandler extends $dara.WebSocketHandler {
handleAwapMessage(session: $dara.WebSocketSessionInfo, message: AwapMessage): Promise | void;
}
export declare class AbstractAwapWebSocketHandler extends $dara.AbstractWebSocketHandler implements AwapWebSocketHandler {
handleAwapMessage(_session: $dara.WebSocketSessionInfo, _message: AwapMessage): void;
}
export declare type AwapMessageOption = (message: AwapMessage) => void;
export declare function withType(msgType: AwapMessageType): AwapMessageOption;
export declare function withID(id: string): AwapMessageOption;
export declare function withHeader(key: string, value: string): AwapMessageOption;
export declare function newAwapMessage(payload: any, ...opts: AwapMessageOption[]): AwapMessage;
export declare function buildAwapMessageText(message: AwapMessage): string;
export declare function buildAwapMessageBinary(message: AwapMessage): Buffer;
export declare function parseAwapMessage(message: $dara.WebSocketMessage): AwapMessage;
export declare const ErrUseRawMessage: Error;