import * as undici from "undici";
import { Logger } from "./logger-factory";
import { HeaderRecord } from "undici/types/header";
export type PartOfRequestConfig = {
    headers?: HeaderRecord;
    redirect?: undici.RequestInit["redirect"];
};
/**
 * Axiosのラッパ
 */
export declare class HttpSession {
    private logger;
    private dispatcher;
    private lastUrl?;
    constructor(logger: Logger, dispatcher: undici.Dispatcher);
    /**
     * HTTP GET して、bodyを文字列で返す
     * @param url
     * @param config
     */
    getPage(url: string, config?: PartOfRequestConfig): Promise<string>;
    /**
     * HTTP GET します
     *
     * @param url
     * @param config
     * @returns
     */
    get(url: string, config?: PartOfRequestConfig): Promise<undici.Response>;
    /**
     * HTTP POST します
     *
     * @param url
     * @param body
     * @param config
     * @returns
     */
    post(url: string, body?: undici.RequestInit["body"], config?: PartOfRequestConfig): Promise<undici.Response>;
    private request;
}
