import { type IRequest, type ValidatedRequest } from '../http/Request';
import type { IResponse } from '../http/Response';
export type TestHttpRequestInput = {
    method?: string;
    path?: string;
    headers?: Record<string, string>;
    body?: unknown;
    params?: Record<string, string>;
    validated?: IRequest['validated'];
    context?: Record<string, unknown>;
};
export type TestHttpResponseRecorder = IResponse & {
    getBodyText: () => string;
    getJson: () => unknown;
    getHeaders: () => Record<string, string | string[]>;
};
export declare const TestHttp: Readonly<{
    createRequest(input?: TestHttpRequestInput): IRequest;
    createValidatedRequest<TBody = unknown, TQuery = unknown, TParams = unknown, THeaders = unknown>(input: Omit<TestHttpRequestInput, "validated"> & {
        validated: {
            body: TBody;
            query: TQuery;
            params: TParams;
            headers: THeaders;
        };
    }): ValidatedRequest<TBody, TQuery, TParams, THeaders>;
    createResponseRecorder(): TestHttpResponseRecorder;
}>;
//# sourceMappingURL=TestHttp.d.ts.map