import type { ApiResponseParams, SuccessParams, ErrorParams, PaginatedParams, PaginationMeta, ErrorDetails } from '../types'; /** * Standardized API Response class * * Provides a consistent structure for all API responses across your application. * Works with both NestJS and Next.js. * * @example * ```typescript * // Success response * ApiResponse.success({ data: user, message: 'User retrieved successfully' }); * * // Error response * ApiResponse.error({ message: 'User not found', code: BusinessCode.USER_NOT_FOUND, statusCode: 404 }); * * // Paginated response * ApiResponse.paginated({ data: users, page: 1, limit: 10, total: 100 }); * ``` */ export declare class ApiResponse { /** Whether the operation was successful */ success: boolean; /** Response data (for success responses) */ data?: T; /** Response message */ message?: string; /** HTTP status code */ statusCode?: number; /** Pagination or additional metadata */ meta?: PaginationMeta; /** Error details (for error responses) */ error?: ErrorDetails; constructor(params: ApiResponseParams); /** * Create a success response * * @param params - Success response parameters * @returns ApiResponse instance with success=true * * @example * ```typescript * // Simple success * ApiResponse.success({ data: { id: 1, name: 'John' } }); * * // With message * ApiResponse.success({ data: user, message: 'User created successfully', statusCode: 201 }); * ``` */ static success(params?: SuccessParams): ApiResponse; /** * Create an error response * * @param params - Error response parameters * @returns ApiResponse instance with success=false * * @example * ```typescript * // Simple error * ApiResponse.error({ message: 'Something went wrong' }); * * // With business code * ApiResponse.error({ * message: 'User not found', * code: BusinessCode.USER_NOT_FOUND, * statusCode: HttpStatus.NOT_FOUND * }); * * // With validation details * ApiResponse.error({ * message: 'Validation failed', * code: BusinessCode.VALIDATION_ERROR, * details: { email: 'Invalid email format', age: 'Must be a number' } * }); * ``` */ static error(params?: ErrorParams): ApiResponse; /** * Create a paginated success response * * @param params - Paginated response parameters * @returns ApiResponse instance with pagination metadata * * @example * ```typescript * const users = await userService.findAll({ page: 1, limit: 10 }); * return ApiResponse.paginated({ * data: users.items, * page: 1, * limit: 10, * total: users.total * }); * ``` */ static paginated(params: PaginatedParams): ApiResponse; /** * Create a "created" success response (HTTP 201) * * @param data - The created resource * @param message - Optional success message * @returns ApiResponse instance with statusCode 201 */ static created(data: T, message?: string): ApiResponse; /** * Create a "no content" success response (HTTP 204) * * @param message - Optional success message * @returns ApiResponse instance with statusCode 204 and no data */ static noContent(message?: string): ApiResponse; /** * Create a "bad request" error response (HTTP 400) * * @param message - Error message * @param details - Optional error details * @returns ApiResponse error instance with statusCode 400 */ static badRequest(message?: string, details?: Record): ApiResponse; /** * Create an "unauthorized" error response (HTTP 401) * * @param message - Error message * @param code - Optional business code (defaults to AUTH_FAILED) * @returns ApiResponse error instance with statusCode 401 */ static unauthorized(message?: string, code?: number): ApiResponse; /** * Create a "forbidden" error response (HTTP 403) * * @param message - Error message * @returns ApiResponse error instance with statusCode 403 */ static forbidden(message?: string): ApiResponse; /** * Create a "not found" error response (HTTP 404) * * @param message - Error message * @param code - Optional business code (defaults to RESOURCE_NOT_FOUND) * @returns ApiResponse error instance with statusCode 404 */ static notFound(message?: string, code?: number): ApiResponse; /** * Create a "conflict" error response (HTTP 409) * * @param message - Error message * @param code - Optional business code (defaults to RESOURCE_CONFLICT) * @returns ApiResponse error instance with statusCode 409 */ static conflict(message?: string, code?: number): ApiResponse; /** * Create a "validation error" response (HTTP 422) * * @param details - Validation error details * @param message - Optional error message * @returns ApiResponse error instance with statusCode 422 */ static validationError(details: Record, message?: string): ApiResponse; /** * Create a "too many requests" error response (HTTP 429) * * @param message - Error message * @returns ApiResponse error instance with statusCode 429 */ static tooManyRequests(message?: string): ApiResponse; /** * Create an "internal server error" response (HTTP 500) * * @param message - Error message * @returns ApiResponse error instance with statusCode 500 */ static internalError(message?: string): ApiResponse; /** * Convert response to plain object (useful for serialization) */ toJSON(): ApiResponseParams; } //# sourceMappingURL=api-response.d.ts.map