import Base from '@pawel-up/data-mock/Http.js';
import { Types } from '@pawel-up/data-mock/Types.js';
import { Lorem } from '@pawel-up/data-mock/Lorem.js';
import { Time } from '@pawel-up/data-mock/Time.js';
import { Random } from '@pawel-up/data-mock/Random.js';
import { IHttpRequestInit } from '@pawel-up/data-mock/types.js';
import { ArcDataMockInit } from '../LegacyInterfaces.js';
import { HttpResponse } from './HttpResponse.js';
import { ARCHistoryRequest, ARCSavedRequest, TransportRequest } from '../../models/legacy/request/ArcRequest.js';
import { ARCProject } from '../../models/legacy/models/ArcLegacyProject.js';
export interface RequestHistoryInit extends IHttpRequestInit {
    noId?: boolean;
}
export interface RequestSavedInit extends IHttpRequestInit {
    forceDescription?: boolean;
    noDescription?: boolean;
    project?: string;
    projects?: ARCProject[];
    forceProject?: boolean;
}
export interface ProjectCreateInit {
    /**
     * Request id to add to `requests` array
     */
    requestId?: string;
    /**
     * If set it generates request ID to add to `requests` array
     */
    autoRequestId?: boolean;
}
export declare interface GenerateSavedResult {
    projects: ARCProject[];
    requests: ARCSavedRequest[];
}
export interface TransportRequestInit extends IHttpRequestInit {
    noHttpMessage?: boolean;
}
export declare class Http extends Base {
    LAST_TIME: number;
    types: Types;
    lorem: Lorem;
    response: HttpResponse;
    time: Time;
    protected _random: Random;
    constructor(init?: ArcDataMockInit);
    history(opts?: RequestHistoryInit): ARCHistoryRequest;
    saved(opts?: RequestSavedInit): ARCSavedRequest;
    /**
     * Generates a description for a request.
     *
     * @param opts Configuration options
     * @returns Items description.
     */
    description(opts?: RequestSavedInit): string | undefined;
    /**
     * @param size The number of requests to generate.
     * @param init History init options.
     */
    listHistory(size?: number, init?: RequestHistoryInit): ARCHistoryRequest[];
    /**
     * @param size The number of requests to generate.
     * @param init Saved init options
     */
    listSaved(size?: number, init?: RequestSavedInit): ARCSavedRequest[];
    /**
     * Picks a random project from the list of passed in `opts` projects.
     *
     * @param opts
     * @returns A project or undefined.
     */
    pickProject(opts?: RequestSavedInit): ARCProject | undefined;
    project(init?: ProjectCreateInit): ARCProject;
    listProjects(size?: number, init?: ProjectCreateInit): ARCProject[];
    /**
     * @returns A map with `projects` and `requests` arrays.
     */
    savedData(requestsSize?: number, projectsSize?: number, requestsInit?: RequestSavedInit, projectInit?: ProjectCreateInit): GenerateSavedResult;
    /**
     * Generates a transport request object.
     * @param opts Generate options
     * @returns The transport request object
     */
    transportRequest(opts?: TransportRequestInit): TransportRequest;
}
//# sourceMappingURL=Http.d.ts.map