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';
type DataInput = HttpRequest | SentRequest | IHttpRequest | ISentRequest | IHttpResponse | HttpResponse | IErrorResponse | ErrorResponse | undefined;
/**
 * This is a factory class for the `RequestDataExtractor`.
 */
export declare class DataExtractor {
    /**
     * Reads the value of a cookie.
     * @param name The name of the cookie to read.
     * @param input The response object.
     */
    static readCookieValue(name: string, input: IHttpResponse | HttpResponse | IErrorResponse | ErrorResponse | undefined): string | undefined;
    static readHeaders(obj: DataInput): string;
    /**
     * Reads value from the body.
     * @param value The read body value as string
     * @param mime The body mime
     * @param path THe path to read.
     * @returns The extracted value.
     */
    static extractBody(value: string, mime: string, path: string): Promise<string | undefined>;
    /**
     * Returns the value for path for given source object
     *
     * @param url An url to parse.
     * @param path Path to the data
     * @return Value for the path.
     */
    static getDataUrl(url: string, path: string[]): string | number | undefined;
    /**
     * Reads value of the URL query parameters.
     *
     * The `?` at the beginning of the query string is removed.
     *
     * @param url The URL object instance
     * @param param Param name to return. If not set then it returns  whole query string value.
     * @return Full query string value if `param` is not set or parameter
     * value. This function does not returns `null` values.
     */
    static readUrlQueryValue(url: URL, param?: string): string | null;
    /**
     * Reads value of the URL hash.
     *
     * The `#` at the beginning of the hash string is removed.
     *
     * If the `param` argument is set then it treats hahs value as a query
     * parameters string and parses it to get the value.
     *
     * @param url The URL object instance
     * @param param Param name to return. If not set then it returns whole hash string value.
     * @return Hash parameter or whole hash value.
     */
    static readUrlHashValue(url: URL, param?: string): string | undefined;
    /**
     * Returns a value for the headers.
     *
     * @param source HTTP headers string
     * @param path The path to the object
     * @returns The value for the path.
     */
    static getDataHeaders(source: string, path: string[]): string | undefined;
}
export {};
//# sourceMappingURL=DataExtractor.d.ts.map