import type { Middleware } from '../middlewareChain';
import type { RestInputWithModels, RestRequestLoggerConfig, RestResponse, DefaultModelTypes } from './types';
import type { AmplifyModelType } from '../../queries/types';
/**
 * Creates REST request logger middleware for comprehensive request/response logging
 *
 * Provides structured logging of HTTP requests and responses with configurable detail levels,
 * timing information, and data sanitization. Supports different log levels and can exclude
 * sensitive fields from logs.
 *
 * @param config - Configuration options for logging behavior
 * @returns Middleware function that logs requests and responses
 *
 * @example
 * ```typescript
 * // Basic logging
 * const logger = createRestRequestLogger({
 *   logEvent: true,
 *   logResponse: true,
 *   logTiming: true
 * });
 *
 * // Production logging with sensitive data exclusion
 * const prodLogger = createRestRequestLogger({
 *   logRequestBody: false,
 *   excludeEventFields: ['authorization', 'password'],
 *   excludeResponseFields: ['token', 'secret'],
 *   logLevel: 'info'
 * });
 *
 * chain.use('logger', logger);
 * ```
 */
export declare function createRestRequestLogger<TTypes extends Record<string, AmplifyModelType> = DefaultModelTypes>(config?: RestRequestLoggerConfig): Middleware<RestInputWithModels<TTypes>, RestResponse>;
//# sourceMappingURL=RestRequestLogger.d.ts.map