import { BidRequest, BidResponse } from 'iab-openrtb/v25';
import { BidRequest as BidRequest$1, BidResponse as BidResponse$1 } from 'iab-openrtb/v26';
import { Openrtb } from 'iab-openrtb/v30';

declare class InvalidBidRequestException extends Error {
    name: string;
    constructor(message?: string);
}
declare class NoBidResponseException extends Error {
    name: string;
    message: string;
}
declare class UnexpectedError extends Error {
}

interface IBidRequester {
    requestV25(endpoint: string, bidRequest: BidRequest, options?: BidRequesterOptions): Promise<BidResponse>;
    requestV26(endpoint: string, bidRequest: BidRequest$1, options?: BidRequesterOptions): Promise<BidResponse$1>;
    requestV30(endpoint: string, openrtb: Openrtb, options?: BidRequesterOptions): Promise<Openrtb>;
}
type BidRequesterOptions = {
    dataFormat?: string;
    acceptEncoding?: string;
    contentEncoding?: string;
    customHeaders?: Record<string, string>;
    withCredentials?: boolean;
};
declare class BidRequester implements IBidRequester {
    private options;
    constructor(options?: BidRequesterOptions);
    requestV25(endpoint: string, bidRequest: BidRequest, options?: BidRequesterOptions): Promise<BidResponse>;
    requestV26(endpoint: string, bidRequest: BidRequest$1, options?: BidRequesterOptions): Promise<BidResponse$1>;
    requestV30(endpoint: string, openrtb: Openrtb, options?: BidRequesterOptions): Promise<Openrtb>;
}

declare const bidRequester: BidRequester;

export { BidRequester, type BidRequesterOptions, type IBidRequester, InvalidBidRequestException, NoBidResponseException, UnexpectedError, bidRequester };
