import type { IncomingMessage } from 'http';
declare class DataDomeModule {
    requestTimeMicros: number;
    name: string;
    version: string;
    constructor();
}
export interface RequestMetadata {
    addr?: string;
    accept?: string;
    acceptLanguage?: string;
    contentType?: string;
    method?: string;
    host?: string;
    port?: number;
    protocol?: string;
    userAgent?: string;
    referer?: string;
    xRealIp?: string;
    xForwardedForIp?: string;
    acceptEncoding?: string;
    serverHostname?: string;
    from?: string;
    request?: string;
    origin?: string;
    connection?: string;
    acceptCharset?: string;
    clientID?: string;
    secCHUA?: string;
    secCHUAMobile?: string;
    secCHUAPlatform?: string;
    secCHUAArch?: string;
    secCHUAFullVersionList?: string;
    secCHUAModel?: string;
    secCHDeviceMemory?: string;
}
declare class DataDomeHeaders {
    addr: string;
    accept: string;
    acceptLanguage: string;
    contentType: string;
    method: string;
    host: string;
    port: number;
    protocol: string;
    userAgent: string;
    referer: string;
    xRealIp: string;
    xForwardedForIp: string;
    acceptEncoding: string;
    serverHostname: string;
    from: string;
    request: string;
    origin: string;
    connection: string;
    acceptCharset: string;
    clientID: string;
    secCHUA?: string;
    secCHUAMobile?: string;
    secCHUAPlatform?: string;
    secCHUAArch?: string;
    secCHUAFullVersionList?: string;
    secCHUAModel?: string;
    secCHDeviceMemory?: string;
    constructor(request: IncomingMessage, requestMetadata?: RequestMetadata);
    private getProtocol;
    /**
     * Use the Host header or X-Forwarded-Port if available, otherwise fallback to socket.remotePort
     * @param request
     * @returns The port number
     */
    private getPort;
    private getClientId;
}
export declare class DataDomeRequest {
    module: DataDomeModule;
    header: DataDomeHeaders;
    [key: string]: unknown;
    constructor(request: IncomingMessage, requestMetadata?: RequestMetadata);
}
export {};
//# sourceMappingURL=request.d.ts.map