import { IncomingMessage } from 'http';
import { DataDomeEvent, Response, ResponseError, RequestMetadata } from './model';
export interface LogInterface {
    debug(primaryMessage: string, ...supportingData: unknown[]): void;
    warn(primaryMessage: string, ...supportingData: unknown[]): void;
    error(primaryMessage: string, ...supportingData: unknown[]): void;
    info(primaryMessage: string, ...supportingData: unknown[]): void;
}
export interface DataDomeOptions {
    logger?: LogInterface;
    timeout?: number;
    endpoint?: string;
}
export declare enum Operation {
    VALIDATE = "validate",
    COLLECT = "collect"
}
/**
 * Class to instantiate a DataDome client
 */
export declare class DataDome {
    private endpoint;
    private logger;
    private timeout;
    private requestOptions;
    constructor(key: string, options?: DataDomeOptions);
    private buildPayload;
    /**
     * Perform the request to the Protect API
     */
    private sendRequest;
    /**
     * Validate request
     */
    validate(request: IncomingMessage, event: DataDomeEvent, requestMetadata?: RequestMetadata): Promise<Response | ResponseError>;
    /**
     * Collect request
     */
    collect(request: IncomingMessage, event: DataDomeEvent, requestMetadata?: RequestMetadata): Promise<Response | ResponseError>;
}
//# sourceMappingURL=datadome.d.ts.map