import { IHttpRequest, HttpRequest } from '../models/HttpRequest.js';
import { ISentRequest, SentRequest } from '../models/SentRequest.js';
import { IHttpResponse, HttpResponse } from '../models/HttpResponse.js';
import { IErrorResponse, ErrorResponse } from '../models/ErrorResponse.js';
import { FlowRequestDataEnum, FlowResponseDataEnum, FlowSourceEnum } from '../models/http-flows/HttpFlows.js';
/**
 * A class to extract data from the request or the response.
 */
export declare class RequestDataExtractor {
    /**
     * The request that has been sent to the server.
     */
    request: HttpRequest | SentRequest;
    /**
     * The response object
     */
    response?: HttpResponse | ErrorResponse;
    constructor(request: IHttpRequest | ISentRequest, response?: IHttpResponse | IErrorResponse);
    /**
     * Reads the data from the selected path.
     *
     * @param source The source of the data to read. Note, variables are not supported here.
     * @param data The kind of data to read the value from
     * @param path The path to the data.
     * @return Data to be processed
     */
    extract(source: FlowSourceEnum, data?: FlowRequestDataEnum | FlowResponseDataEnum, path?: string): Promise<string | number | undefined>;
    /**
     * @param source The source name
     * @returns The URL of the request
     */
    getUrl(): string;
    /**
     * @param source The source name
     * @returns The headers from the request / response
     */
    getHeaders(source?: FlowSourceEnum): string;
    processBody(path?: string, source?: FlowSourceEnum): Promise<string | undefined>;
    /**
     * @param source The source name
     * @returns The headers from the request / response
     */
    getBody(source?: FlowSourceEnum): Promise<string | undefined>;
    /**
     * @deprecated Use `DataExtractor.extractBody()` instead.
     */
    extractBody(value: string, mime: string, path: string): Promise<string | undefined>;
}
//# sourceMappingURL=RequestDataExtractor.d.ts.map