/// <reference types="node" />
import { ParsedUrlQuery } from 'querystring';
import { WSRequest, WSResponse } from './service';
import { JsonValue, PartialDeep } from 'type-fest';
export type AbbreviatedResponse = Readonly<[number, PartialDeep<JsonValue>]>;
export type Handler = (params: Record<string, string>, body: Uint8Array | undefined, headers: Record<string, string>, query?: ParsedUrlQuery) => Promise<AbbreviatedResponse>;
export declare class Router {
    private readonly routes;
    private isAuthenticated;
    register(method: string, pattern: string, handler: Handler): void;
    get(pattern: string, handler: Handler): void;
    put(pattern: string, handler: Handler): void;
    post(pattern: string, handler: Handler): void;
    del(pattern: string, handler: Handler): void;
    run(request: WSRequest): Promise<WSResponse>;
    setIsAuthenticated(value: boolean): void;
}
