import * as _nuxt_schema from '@nuxt/schema';
import { H3Event } from 'h3';

interface RequestLogOptions {
    /**
     * Enable request logging
     * @default true
     */
    enabled?: boolean;
    /**
     * Include request body in logs
     * @default false
     */
    logBody?: boolean;
    /**
     * Include request headers in logs
     * @default false
     */
    logHeaders?: boolean;
    /**
     * Custom filter function to determine which requests to log
     * @param event H3Event object
     * @returns Boolean indicating whether to log the request
     */
    filter?: (event: H3Event) => boolean;
    /**
     * Output format for logs
     * @default 'json'
     */
    format?: "json" | "text";
    /**
     * Headers to mask in logs (e.g. for sensitive information)
     * @default ['authorization', 'cookie']
     */
    maskHeaders?: string[];
}
type ModuleOptions = RequestLogOptions;
declare module "nuxt/schema" {
    interface NuxtConfig {
        requestLog?: RequestLogOptions;
    }
    interface NuxtOptions {
        requestLog?: RequestLogOptions;
    }
}
interface RequestLogInfo {
    timestamp: string;
    method: string;
    url: string;
    statusCode: number;
    responseTime?: number;
    ip?: string;
    userAgent?: string;
    body?: any;
    headers?: Record<string, string>;
}
interface RequestLogHandler {
    (logInfo: RequestLogInfo): void;
}

declare const _default: _nuxt_schema.NuxtModule<RequestLogOptions, RequestLogOptions, false>;

export { type ModuleOptions, type RequestLogHandler, type RequestLogInfo, type RequestLogOptions, _default as default };
