export declare type RequestMethodType = 'get' | 'post' | 'patch' | 'delete' | 'put';
/**
 * @hidden
 */
export declare abstract class ODataRequestConfig {
    method: RequestMethodType;
    readonly defaultServicePath: string;
    payload: Record<string, any> | string;
    customServicePath: string;
    readonly defaultHeaders: Record<string, any>;
    private _customHeaders;
    private _customQueryParameters;
    private _customRequestConfiguration;
    private _appendedPaths;
    private _fetchCsrfToken;
    /**
     * @deprecated Since v1.30.0. Use [[defaultHeaders]] instead.
     */
    get contentType(): any;
    /**
     * @deprecated Since v1.30.0.
     */
    constructor(method: RequestMethodType, defaultServicePath: string, contentType: string);
    constructor(method: RequestMethodType, defaultServicePath: string, defaultHeaders?: Record<string, any>);
    set customHeaders(headers: Record<string, string>);
    get customHeaders(): Record<string, string>;
    set customQueryParameters(queryParameters: Record<string, string>);
    get customQueryParameters(): Record<string, string>;
    set customRequestConfiguration(requestConfiguration: Record<string, string>);
    get customRequestConfiguration(): Record<string, string>;
    get appendedPaths(): string[];
    set fetchCsrfToken(fetchCsrfToken: boolean);
    get fetchCsrfToken(): boolean;
    /**
     * Add custom headers to the request. This is useful in case you want to provide your own authorization headers for example.
     * @param headers - Key-value pairs where the key is the name of a header property and the value is the respective value
     */
    addCustomHeaders(headers: Record<string, string>): void;
    /**
     * Add custom query parameters to the request. This is useful in case your OData service allows non-standard query parameters.
     * @param queryParameters - Key-value pairs where the key is the name of a query parameter and the value is the respective value
     */
    addCustomQueryParameters(queryParameters: Record<string, string>): void;
    /**
     * Add custom request configuration to the request.
     * @param requestConfiguration - Key-value pairs where the key is the name of a request configuration and the value is the respective value
     */
    addCustomRequestConfiguration(requestConfiguration: Record<string, string>): void;
    appendPath(...path: string[]): void;
    protected prependDollarToQueryParameters(params: Record<string, any>): Record<string, any>;
    /**
     * @hidden
     */
    abstract resourcePath(): string;
    /**
     * @hidden
     */
    abstract queryParameters(): Record<string, any>;
}
//# sourceMappingURL=odata-request-config.d.ts.map