import type { IDataMockInit, IHttpRequestInit } from '@pawel-up/data-mock/types.js';
import { Types } from '@pawel-up/data-mock/Types.js';
import { Time } from '@pawel-up/data-mock/Time.js';
import { Lorem } from '@pawel-up/data-mock/Lorem.js';
import Http from '@pawel-up/data-mock/Http.js';
import { IHttpRequest } from '../../models/HttpRequest.js';
import { IRequest } from '../../models/Request.js';
import { ISentRequest } from '../../models/SentRequest.js';
import { IRequestLog } from '../../models/RequestLog.js';
import { IResponseInit, Response } from './Response.js';
export interface IRequestLogInit {
    request?: IHttpRequestInit;
    response?: IResponseInit;
    /**
     * When set it ignores size information
     */
    noSize?: boolean;
    /**
     * Adds redirects to the request
     */
    redirects?: boolean;
    noResponse?: boolean;
    noRequest?: boolean;
}
export interface IRequestInit extends IResponseInit {
    /**
     * The content type to generate the body for.
     * Has no effect when `noBody` is set.
     */
    contentType?: string;
}
export declare class Request {
    types: Types;
    lorem: Lorem;
    time: Time;
    http: Http;
    response: Response;
    constructor(init?: IDataMockInit);
    request(init?: IHttpRequestInit): IRequest;
    httpRequest(init?: IHttpRequestInit): IHttpRequest;
    sentRequest(init?: IHttpRequestInit): ISentRequest;
    log(init?: IRequestLogInit): Promise<IRequestLog>;
}
//# sourceMappingURL=Request.d.ts.map