/// <reference types="node" />
import type { IncomingMessage, ServerResponse } from 'http';
import type { IncomingParams, IncomingRequestAuthenticateResult, Route } from '../types/interfaces';
import type { RequestConfig, SecurityProviders } from '../types/types';
import { Context } from './Context';
import type { RequestFactory } from './RequestFactory';
export declare class IncomingRequest {
    handle(factory: RequestFactory, route: Route, req: IncomingMessage, res: ServerResponse, params: IncomingParams, requestConfig: RequestConfig, securityProviders: SecurityProviders): Promise<void>;
    protected buildContext(req: IncomingMessage, res: ServerResponse, params: IncomingParams, route: Route): Promise<Context>;
    protected authenticate(authProvider: unknown, context: Context, securityProviders: SecurityProviders): Promise<IncomingRequestAuthenticateResult>;
}
