import { DeepstreamPlugin, DeepstreamHTTPService, PostRequestHandler, GetRequestHandler, DeepstreamServices, DeepstreamConfig, SocketWrapper, WebSocketConnectionEndpoint, SocketWrapperFactory } from '@deepstream/types';
import { Dictionary } from 'ts-essentials';
interface UWSHTTPInterface extends uws.AppOptions {
    healthCheckPath: string;
    host: string;
    port: number;
    allowAllOrigins: boolean;
    origins?: string[];
    maxMessageSize: number;
    headers: string[];
}
export declare class UWSHTTP extends DeepstreamPlugin implements DeepstreamHTTPService {
    private pluginOptions;
    private services;
    description: string;
    private server;
    private isReady;
    private uWS;
    private connections;
    private listenSocket;
    private isGettingReady;
    constructor(pluginOptions: UWSHTTPInterface, services: DeepstreamServices, config: DeepstreamConfig);
    whenReady(): Promise<void>;
    close(): Promise<void>;
    registerPostPathPrefix<DataInterface>(prefix: string, handler: PostRequestHandler<any>): void;
    registerGetPathPrefix(prefix: string, handler: GetRequestHandler): void;
    sendWebsocketMessage(socket: uws.WebSocket, message: Uint8Array | string, isBinary: boolean): void;
    getSocketWrappersForUserId(userId: string): SocketWrapper[];
    registerWebsocketEndpoint(path: string, createSocketWrapper: SocketWrapperFactory, webSocketConnectionEndpoint: WebSocketConnectionEndpoint): void;
    private terminateResponse;
    private sendResponse;
    getHeaders(req: uws.HttpRequest): Dictionary<string, string>;
    private getSLLParams;
}
export {};
