/// <reference types="node" />
import { NextConfig, NextApiHandler, NextApiResponse, NextApiRequest, GetServerSideProps, GetServerSidePropsContext, PreviewData, GetServerSidePropsResult } from 'next';
import { NextFetchEvent, NextMiddleware, NextRequest } from 'next/server';
import { NextMiddlewareResult } from 'next/dist/server/web/types';
import { ParsedUrlQuery } from 'querystring';
import { Logger } from './logger';
declare global {
    var EdgeRuntime: string;
}
export declare function withAxiomNextConfig(nextConfig: NextConfig): NextConfig;
export declare type AxiomAPIRequest = NextApiRequest & {
    log: Logger;
};
export declare type AxiomApiHandler = (request: AxiomAPIRequest, response: NextApiResponse) => NextApiHandler | Promise<NextApiHandler> | Promise<void>;
export declare function withAxiomNextApiHandler(handler: AxiomApiHandler): NextApiHandler;
export declare type AxiomGetServerSidePropsContext<Q extends ParsedUrlQuery = ParsedUrlQuery, D extends PreviewData = PreviewData> = GetServerSidePropsContext<Q, D> & {
    log: Logger;
};
export declare type AxiomGetServerSideProps<P extends {
    [key: string]: any;
} = {
    [key: string]: any;
}, Q extends ParsedUrlQuery = ParsedUrlQuery, D extends PreviewData = PreviewData> = (context: AxiomGetServerSidePropsContext<Q, D>) => Promise<GetServerSidePropsResult<P>>;
export declare function withAxiomNextServerSidePropsHandler(handler: AxiomGetServerSideProps): GetServerSideProps;
export declare type AxiomRequest = NextRequest & {
    log: Logger;
};
export declare type AxiomMiddleware = (request: AxiomRequest, event: NextFetchEvent) => NextMiddlewareResult | Promise<NextMiddlewareResult>;
export declare function withAxiomNextEdgeFunction(handler: NextMiddleware): NextMiddleware;
export declare function withAxiom(param: NextConfig): NextConfig;
export declare function withAxiom(param: AxiomApiHandler): NextApiHandler;
export declare function withAxiom(param: NextMiddleware): NextMiddleware;
export declare const withAxiomGetServerSideProps: typeof withAxiomNextServerSidePropsHandler;
