import { AxiosRequestConfig } from "axios";
import { HttpRetrierLogging, HttpRetrierOptions, HttpRetrierOutputConverter, HttpRetrierResponse, HttpRetrierSettings } from "./types";
/**
 * HttpRetrierSettingsInit class
 * This class is used to initialize the settings for the HttpRetrier.
 * It contains default values for the settings and a method to create the settings object.
 */
export declare class HttpRetrierSettingsInit {
    title: string;
    maxAttempts: number;
    delay: number;
    exponentialBackoff: boolean;
    outputConverter: HttpRetrierOutputConverter;
    logging: HttpRetrierLogging;
    retryOn: (response: HttpRetrierResponse) => boolean;
    /**
     * Constructor for the HttpRetrierSettingsInit class
     * @param {Partial<HttpRetrierSettingsInit>} settings - The settings to initialize the retrier with
     */
    constructor(settings?: Partial<HttpRetrierSettingsInit>);
    /**
     * Create a new HttpRetrierSettings object
     * @param {Record<string, any>} settings - The settings to initialize the retrier with
     * @returns {HttpRetrierSettings} A new HttpRetrierSettings object
     */
    create(settings?: Record<string, any>): HttpRetrierSettings;
}
/**
 * HttpRetrierRequestInit class
 * This class is used to initialize the request for the HttpRetrier.
 * It contains the URL and options for the request and a method to create the request object.
 */
export declare class HttpRetrierRequestInit {
    url: string;
    options: HttpRetrierOptions;
    /**
     * Constructor for the HttpRetrierRequestInit class
     * @param {string} url - The URL to make the request to
     * @param {HttpRetrierOptions} options - The options for the request
     */
    constructor(url: string, options: HttpRetrierOptions);
    /**
     * Create a new AxiosRequestConfig object
     * @returns {AxiosRequestConfig} A new AxiosRequestConfig object
     */
    create(): AxiosRequestConfig;
}
//# sourceMappingURL=settings.d.ts.map