import { Logger, LogLevel } from '@axiomhq/logging'; import { ServerContextFields } from './context.js'; import { NextRequest, NextResponse } from 'next/server'; export type NextHandler = (req: T extends Request ? T : Request, arg?: A) => Promise | Promise | NextResponse | R; export declare const transformRouteHandlerSuccessResult: (data: SuccessData) => [message: string, report: Record]; export declare const transformRouteHandlerErrorResult: (data: ErrorData) => [message: string, report: Record]; export interface BaseData { req: T extends Request ? T : Request; start: number; end: number; } export interface SuccessData extends BaseData { res: R; } export interface ErrorData extends BaseData { error: Error | unknown; } export type AxiomHandlerCallbackParams = { ok: true; data: SuccessData; } | { ok: false; data: ErrorData; }; export type axiomHandlerCallback = (result: AxiomHandlerCallbackParams) => void | Promise; export declare const getNextErrorStatusCode: (error: Error & { digest?: string; }) => number; export declare const getLogLevelFromStatusCode: (statusCode: number) => LogLevel; export declare const defaultRouteHandlerOnSuccess: (logger: Logger, data: SuccessData) => Promise; export declare const createAxiomRouteHandler: (logger: Logger, config?: { store?: ServerContextFields | ((req: TRequestStore, ctx: C) => ServerContextFields | Promise); onSuccess?: (data: SuccessData) => void; onError?: (data: ErrorData) => void; }) => (handler: NextHandler) => (req: TRequestRouteHandler extends Request ? TRequestRouteHandler : Request, ctx: C) => Promise;