import { Response } from 'express';
import { HttpStatusCodes, ApiResponse, ApiError } from '../types';
/**
 * Creates a standardized API response
 */
export declare function formatResponse<T>(res: Response, statusCode: HttpStatusCodes, message: string, data?: T, meta?: ApiResponse<T>['meta'], errors?: ApiError[]): Response<ApiResponse<T>>;
/**
 * Helper for pagination metadata
 * */
export declare function createPaginationMeta(options: {
    page: number;
    limit: number;
    total?: number;
}): ApiResponse<unknown>['meta'];
/**
 * Common response helper methods
 */
export declare const apiResponse: {
    success: <T>(res: Response, message?: string, data?: T, meta?: ApiResponse<T>["meta"]) => Response<ApiResponse<T>, Record<string, any>>;
    created: <T>(res: Response, message?: string, data?: T) => Response<ApiResponse<T>, Record<string, any>>;
    noContent: (res: Response, message?: string) => Response<ApiResponse<unknown>, Record<string, any>>;
    badRequest: (res: Response, message?: string, errors?: ApiError[]) => Response<ApiResponse<undefined>, Record<string, any>>;
    unauthorized: (res: Response, message?: string) => Response<ApiResponse<unknown>, Record<string, any>>;
    forbidden: (res: Response, message?: string) => Response<ApiResponse<unknown>, Record<string, any>>;
    notFound: (res: Response, message?: string) => Response<ApiResponse<unknown>, Record<string, any>>;
    conflict: (res: Response, message?: string) => Response<ApiResponse<unknown>, Record<string, any>>;
    unprocessableEntity: (res: Response, message?: string, errors?: ApiError[]) => Response<ApiResponse<undefined>, Record<string, any>>;
    serverError: (res: Response, message?: string) => Response<ApiResponse<unknown>, Record<string, any>>;
    serviceUnavailable: (res: Response, message?: string) => Response<ApiResponse<unknown>, Record<string, any>>;
    custom: <T>(res: Response, statusCode: HttpStatusCodes, message: string, data?: T, meta?: ApiResponse<T>["meta"], errors?: ApiError[]) => Response<ApiResponse<T>, Record<string, any>>;
};
//# sourceMappingURL=responseFormatter.d.ts.map