import { NextConfig } from 'next';
import { LogLevel, Logger } from './logger';
import { type NextRequest, type NextResponse } from 'next/server';
import { RequestJSON } from './shared';
export declare function withBetterStackNextConfig(nextConfig: NextConfig): NextConfig;
export type BetterStackRequest = NextRequest & {
    log: Logger;
    nextUrl?: {
        hostname: string;
        pathname: string;
        protocol: string;
    };
};
type NextHandler<T = any> = (req: BetterStackRequest, arg?: T) => Promise<Response> | Promise<NextResponse> | NextResponse | Response;
type RouteHandler = (request: NextRequest, context: any) => any;
type BetterStackRouteHandlerConfig = {
    logRequestDetails?: boolean | (keyof RequestJSON)[];
    notFoundLogLevel?: LogLevel;
    redirectLogLevel?: LogLevel;
};
export declare function withBetterStackRouteHandler(handler: NextHandler, config?: BetterStackRouteHandlerConfig): RouteHandler;
export declare function withBetterStack(param: any, config?: BetterStackRouteHandlerConfig): any;
export {};
