import { Writable } from 'stream'; import * as net from 'net'; import { OngoingRequest, CompletedRequest, Explainable } from "../../types"; import { MaybePromise } from '@httptoolkit/util'; import * as matchers from "../matchers"; import * as completionCheckers from "../completion-checkers"; import type { WebSocketStepDefinition } from "./websocket-step-definitions"; export interface WebSocketRule extends Explainable { id: string; requests: Promise[]; matches(request: OngoingRequest): MaybePromise; handle(request: OngoingRequest, response: net.Socket, head: Buffer, options: { record: boolean; debug: boolean; keyLogStream?: Writable; emitEventCallback?: (type: string, event: unknown) => void; }): Promise; isComplete(): boolean | null; } export interface WebSocketRuleData { id?: string; priority?: number; matchers: matchers.RequestMatcher[]; steps: Array; completionChecker?: completionCheckers.RuleCompletionChecker; } export declare class WebSocketRule implements WebSocketRule { private matchers; private steps; private completionChecker?; id: string; readonly priority: number; requests: Promise[]; requestCount: number; constructor(data: WebSocketRuleData); explain(withoutExactCompletion?: boolean): string; dispose(): void; } export declare function explainSteps(steps: WebSocketStepDefinition[]): string; //# sourceMappingURL=websocket-rule.d.ts.map