import { RawData, WebSocket } from 'ws';
import { IncomingMessage } from 'http';
import { IRequestContextIncoming, Provider, RequestContext } from '../../models';
import { IServerContext } from '../../types';
export declare class WsRequestContext extends RequestContext<IServerContext<{
    transport: 'ws';
    event: 'connection' | 'message';
    flag: 'wsCloseConnection';
}>> {
    provider: Provider<WsRequestContext['TContext']>;
    socket: WebSocket;
    event: WsRequestContext['TContext']['event'];
    incoming: IRequestContextIncoming;
    snapshot: import("../../models").RequestContextSnapshot<IServerContext<{
        transport: "ws";
        event: "connection" | "message";
        flag: "wsCloseConnection";
    }>>;
    history: import("../../models").History;
    constructor(provider: Provider<WsRequestContext['TContext']>, socket: WebSocket, event: WsRequestContext['TContext']['event'], incoming: IRequestContextIncoming);
    compileSnapshot(): import("../../models").RequestContextSnapshot<IServerContext<{
        transport: "ws";
        event: "connection" | "message";
        flag: "wsCloseConnection";
    }>>;
    handle(): this;
    skip(): this;
    complete(): this;
    static build(provider: Provider<WsRequestContext['TContext']>, socket: WebSocket, request: IncomingMessage, event: WsRequestContext['TContext']['event'], message?: RawData): Promise<WsRequestContext>;
}
//# sourceMappingURL=context.d.ts.map