import { WebSocketParamType } from '@eggjs/tegg-types';
import type { MethodMeta, MiddlewareFunc } from '@eggjs/tegg-types';
export declare abstract class WebSocketParamMeta {
    type: WebSocketParamType;
    abstract validate(webSocketPath: string): any;
}
export declare class WebSocketPathParamMeta extends WebSocketParamMeta {
    type: WebSocketParamType;
    name: string;
    constructor(name: string);
    validate(webSocketPath: string): void;
}
export declare class WebSocketQueryParamMeta extends WebSocketParamMeta {
    type: WebSocketParamType;
    name: string;
    constructor(name: string);
    validate(): void;
}
export declare class WebSocketQueriesParamMeta extends WebSocketParamMeta {
    type: WebSocketParamType;
    name: string;
    constructor(name: string);
    validate(): void;
}
export declare class WebSocketHeadersParamMeta extends WebSocketParamMeta {
    type: WebSocketParamType;
    validate(): void;
}
export declare class WebSocketRequestParamMeta extends WebSocketParamMeta {
    type: WebSocketParamType;
    validate(): void;
}
export declare class WebSocketSocketParamMeta extends WebSocketParamMeta {
    type: WebSocketParamType;
    validate(): void;
}
export declare class WebSocketStreamParamMeta extends WebSocketParamMeta {
    type: WebSocketParamType;
    validate(): void;
}
export declare class WebSocketDataParamMeta extends WebSocketParamMeta {
    type: WebSocketParamType;
    validate(): void;
}
export declare class WebSocketCloseParamMeta extends WebSocketParamMeta {
    type: WebSocketParamType;
    validate(): void;
}
export declare class WebSocketErrorParamMeta extends WebSocketParamMeta {
    type: WebSocketParamType;
    validate(): void;
}
export declare class WebSocketCloseCodeParamMeta extends WebSocketParamMeta {
    type: WebSocketParamType;
    validate(): void;
}
export declare class WebSocketCloseReasonParamMeta extends WebSocketParamMeta {
    type: WebSocketParamType;
    validate(): void;
}
export declare class WebSocketMethodMeta implements MethodMeta {
    readonly name: string;
    readonly path: string;
    readonly middlewares: readonly MiddlewareFunc[];
    readonly contextParamIndex: number | undefined;
    readonly paramMap: Map<number, WebSocketParamMeta>;
    readonly priority: number;
    readonly hosts: string[] | undefined;
    readonly timeout: number | undefined;
    constructor(name: string, path: string, middlewares: MiddlewareFunc[], contextParamIndex: number | undefined, paramMap: Map<number, WebSocketParamMeta>, priority: number, hosts: string[] | undefined, timeout?: number);
}
export declare class WebSocketParamMetaUtil {
    static createParam(type: WebSocketParamType, name?: string): WebSocketPathParamMeta | WebSocketQueryParamMeta | WebSocketQueriesParamMeta | WebSocketHeadersParamMeta | WebSocketRequestParamMeta | WebSocketSocketParamMeta | WebSocketStreamParamMeta | WebSocketDataParamMeta | WebSocketCloseParamMeta | WebSocketErrorParamMeta | WebSocketCloseCodeParamMeta | WebSocketCloseReasonParamMeta;
}
