import type { Context, MiddlewareHandler } from "hono";
import { Logger } from "../core/logger.service.js";
import { type LoggerConfig } from "../core/logger.config.js";
type HonoVariables = {
    requestId: string;
};
export interface HonoLoggerOptions {
    /**
     * An existing Logger instance to use.
     * If not provided, a new Logger will be created with the options below.
     */
    loggerInstance?: Logger;
    /**
     * Configuration options for the Logger.
     * Ignored if loggerInstance is provided.
     */
    loggerOptions?: Partial<LoggerConfig>;
    /**
     * Function to determine if a request should be skipped for logging.
     * @param c Hono context
     * @returns true to skip logging, false otherwise
     */
    skip?: (c: Context) => boolean;
    /**
     * Customize the log message for incoming requests.
     * @param c Hono context
     * @param store Request context store
     * @returns Log message string
     */
    requestMessage?: (c: Context, store: {
        requestId: string;
    }) => string;
    /**
     * Customize the log message for completed requests.
     * @param c Hono context
     * @param store Request context store
     * @param duration Request duration in ms
     * @param status Response status code
     * @returns Log message string
     */
    responseMessage?: (c: Context, store: {
        requestId: string;
    }, duration: number, status: number) => string;
}
/**
 * Hono middleware for neuro-friendly logging and request context management.
 *
 * @param options Configuration options for the logger middleware.
 * @returns Hono MiddlewareHandler.
 */
export declare const honoLogger: (options?: HonoLoggerOptions) => MiddlewareHandler<{
    Variables: HonoVariables;
}>;
/**
 * Hono error handler that logs errors using the logger and request context.
 *
 * Usage:
 * ```typescript
 * import { Hono } from 'hono';
 * import { honoErrorHandler } from './path/to/honoErrorHandler/index.js';
 * import { Logger } from './path/to/logger/index.js';
 *
 * const app = new Hono();
 * const logger = new Logger();
 *
 * app.onError(honoErrorHandler(logger));
 * // ... other middleware and routes
 * ```
 *
 * @param loggerInstance An instance of the Logger.
 * @returns Hono ErrorHandler.
 */
export declare const honoErrorHandler: (loggerInstance: Logger) => (err: Error, c: Context) => Response & import("hono").TypedResponse<{
    ok: false;
    message: string;
}, 500, "json">;
export {};
//# sourceMappingURL=hono.d.ts.map