import { IHostRule, HostRule } from './HostRule.js';
import { IProperty, Property } from './Property.js';
import { RequestConfig as LegacyConfig } from './legacy/request/ArcRequest.js';
export declare const Kind = "Core#RequestConfig";
export interface IRequestBaseConfig {
    /**
     * Request timeout in milliseconds
     * Default no timeout.
     */
    timeout?: number;
    /**
     * When false the request object won't follow redirects.
     * @default true
     */
    followRedirects?: boolean;
    /**
     * Hosts table configuration.
     */
    hosts?: IHostRule[];
    /**
     * A limit of characters to include into the `sentHttpMessage` property
     * of the request object. 0 to disable limit. Default to 2048.
     * @default 2048
     */
    sentMessageLimit?: number;
    /**
     * When set the request adds `accept` and `user-agent` headers if missing.
     */
    defaultHeaders?: boolean;
    /**
     * Default `user-agent` header to be used with request when `defaultHeaders`
     * is set.
     *
     * @default api-client
     */
    defaultUserAgent?: string;
    /**
     * Default `accept` header to be used with request when `defaultHeaders`
     * is set.
     * @default *\/*
     */
    defaultAccept?: string;
    /**
     * The proxy URI to connect to when making the connection.
     * It should contain the host and port. Default port is 80.
     */
    proxy?: string;
    /**
     * The proxy authorization username value.
     */
    proxyUsername?: string;
    /**
     * The proxy authorization password value.
     */
    proxyPassword?: string;
    /**
     * The type of proxy authentication to use.
     */
    proxyAuthorization?: 'Basic';
    /**
     * Whether the processor should validate certificates.
     */
    validateCertificates?: boolean;
    /**
     * Optional signal from an `AbortController`.
     * This is populated only when executing a request. This value is opaque for the data store.
     */
    signal?: AbortSignal;
}
/**
 * API Client request `config` object.
 */
export interface IRequestConfig extends IRequestBaseConfig {
    kind: typeof Kind;
    /**
     * Whether the processor should use this configuration.
     */
    enabled: boolean;
    /**
     * Does not set session (saved) cookies to this request
     */
    ignoreSessionCookies?: boolean;
    /**
     * A list of variables to use with the request.
     * Note, request variables override application and Folder variables.
     */
    variables?: IProperty[];
}
export declare class RequestConfig {
    kind: string;
    /**
     * Whether the processor should use this configuration.
     */
    enabled: boolean;
    /**
     * The request timeout.
     * Default no timeout.
     */
    timeout?: number;
    /**
     * Whether or not the request should follow redirects.
     */
    followRedirects?: boolean;
    /**
     * Does not set session (saved) cookies to this request
     */
    ignoreSessionCookies?: boolean;
    /**
     * Hosts table configuration.
     */
    hosts?: HostRule[];
    /**
     * Whether the processor should validate certificates.
     */
    validateCertificates?: boolean;
    /**
     * Whether to put a "default" headers (accept and user agent)
     */
    defaultHeaders?: boolean;
    /**
     * Default `user-agent` header to be used with request when `defaultHeaders`
     * is set.
     *
     * @default api-client
     */
    defaultUserAgent?: string;
    /**
     * Default `accept` header to be used with request when `defaultHeaders`
     * is set.
     * @default *\/*
     */
    defaultAccept?: string;
    /**
     * A list of variables to use with the request.
     * Note, request variables override application and workspace variables.
     */
    variables?: Property[];
    /**
     * The proxy URI to connect to when making the connection.
     * It should contain the host and port. Default port is 80.
     */
    proxy?: string;
    /**
     * The proxy authorization username value.
     */
    proxyUsername?: string;
    /**
     * The proxy authorization password value.
     */
    proxyPassword?: string;
    /**
     * A limit of characters to include into the `sentHttpMessage` property
     * of the request object. 0 to disable limit. Default to 2048.
     * @default 2048
     */
    sentMessageLimit?: number;
    /**
     * Optional signal from an `AbortController`.
     * This is populated only when executing a request. This value is opaque for the data store.
     */
    signal?: AbortSignal;
    static withDefaults(): RequestConfig;
    static fromLegacy(config: LegacyConfig): RequestConfig;
    /**
     * @param input The request configuration definition used to restore the state.
     */
    constructor(input?: string | IRequestConfig);
    /**
     * Creates a new request configuration clearing anything that is so far defined.
     */
    new(init: IRequestConfig): void;
    toJSON(): IRequestConfig;
}
//# sourceMappingURL=RequestConfig.d.ts.map