/**
 * Response builder for creating mock HTTP responses
 */
import type { ApiError } from '@dbs-portal/core-shared';
import type { MockResponseBuilder, ResponseBuilderOptions, MockResponseMetadata } from './types';
/**
 * Implementation of mock response builder
 */
export declare class MockResponseBuilderImpl<T = any> implements MockResponseBuilder<T> {
    private responseData;
    private statusCode;
    private responseHeaders;
    private responseDelay?;
    private responseError?;
    private metadata;
    constructor(options?: ResponseBuilderOptions<T>);
    /**
     * Set response data
     */
    data(data: T): MockResponseBuilder<T>;
    /**
     * Set status code
     */
    status(code: number): MockResponseBuilder<T>;
    /**
     * Set headers
     */
    headers(headers: Record<string, string>): MockResponseBuilder<T>;
    /**
     * Set delay
     */
    delay(ms: number | [number, number]): MockResponseBuilder<T>;
    /**
     * Add error
     */
    error(error: ApiError): MockResponseBuilder<T>;
    /**
     * Set metadata
     */
    meta(metadata: Partial<MockResponseMetadata>): MockResponseBuilder<T>;
    /**
     * Build the response
     */
    build(): Response;
    /**
     * Build with async delay
     */
    buildAsync(): Promise<Response>;
}
/**
 * Create a new response builder
 */
export declare function mockResponseBuilder<T = any>(options?: ResponseBuilderOptions<T>): MockResponseBuilder<T>;
/**
 * Create a success response
 */
export declare function createSuccessResponse<T = any>(data: T, options?: Partial<ResponseBuilderOptions<T>>): Response;
/**
 * Create an error response
 */
export declare function createErrorResponse(error: ApiError, options?: Partial<ResponseBuilderOptions>): Response;
/**
 * Create a loading response (with delay)
 */
export declare function createLoadingResponse<T = any>(data: T, delay?: number | [number, number], options?: Partial<ResponseBuilderOptions<T>>): MockResponseBuilder<T>;
/**
 * Create a not found response
 */
export declare function createNotFoundResponse(message?: string, options?: Partial<ResponseBuilderOptions>): Response;
/**
 * Create an unauthorized response
 */
export declare function createUnauthorizedResponse(message?: string, options?: Partial<ResponseBuilderOptions>): Response;
/**
 * Create a forbidden response
 */
export declare function createForbiddenResponse(message?: string, options?: Partial<ResponseBuilderOptions>): Response;
/**
 * Create a validation error response
 */
export declare function createValidationErrorResponse(errors: string[] | Record<string, string[]>, message?: string, options?: Partial<ResponseBuilderOptions>): Response;
/**
 * Create a server error response
 */
export declare function createServerErrorResponse(message?: string, options?: Partial<ResponseBuilderOptions>): Response;
/**
 * Create a rate limit response
 */
export declare function createRateLimitResponse(message?: string, retryAfter?: number, options?: Partial<ResponseBuilderOptions>): Response;
/**
 * Create a maintenance response
 */
export declare function createMaintenanceResponse(message?: string, retryAfter?: number, options?: Partial<ResponseBuilderOptions>): Response;
/**
 * Create a response with custom status and message
 */
export declare function createCustomResponse<T = any>(status: number, data?: T, error?: ApiError, options?: Partial<ResponseBuilderOptions<T>>): Response;
/**
 * Create a response that simulates network conditions
 */
export declare function createNetworkResponse<T = any>(data: T, networkCondition?: 'fast' | 'slow' | 'unstable', options?: Partial<ResponseBuilderOptions<T>>): MockResponseBuilder<T>;
/**
 * Create a response with cache headers
 */
export declare function createCachedResponse<T = any>(data: T, cacheControl?: string, options?: Partial<ResponseBuilderOptions<T>>): Response;
/**
 * Create a response with CORS headers
 */
export declare function createCorsResponse<T = any>(data: T, origin?: string, options?: Partial<ResponseBuilderOptions<T>>): Response;
//# sourceMappingURL=response-builder.d.ts.map