/// <reference types="node" />
import * as http from "http";
import * as uws from "uws";
import { Logger } from "./Logger";
import { TokenValidator } from "./TokenValidator";
import { RosSocket } from "./netUtil";
export interface IAuthenticationMessage {
    action: "authenticate";
    token: string;
}
export declare class ServiceWebSocketServer extends uws.Server {
    static AUTHENTICATION_TIMEOUT: number;
    private logger;
    private tokenValidator;
    constructor(logger: Logger, tokenValidator: TokenValidator);
    setLogger(logger: Logger): void;
    upgradeAuthenticated(req: http.IncomingMessage, socket: RosSocket, head: ArrayBuffer, mustBeAdmin?: boolean): Promise<uws>;
    private isValidFirstMessage;
    private upgradeWebSocket;
}
