import { IncomingHttpHeaders } from 'node:http';

type Override = 'HUMAN' | 'BAD-BOT' | 'GOOD-BOT' | 'ALLOWED' | undefined;
type Config = {
    developmentOptions?: {
        bypass?: Override;
        /**
         *  Defaulting to process.env.NODE_ENV !== 'production'
         */
        isDevelopment?: boolean;
    };
    advancedOptions?: {
        checkLevel?: 'deepAnalysis' | 'basic';
        extraAllowedHosts?: string[];
        headers?: IncomingHttpHeaders;
        returnResponseHeaders?: boolean;
        vercelOidcToken?: string;
    };
};

declare const checkBotId: ({ developmentOptions, advancedOptions, }?: Config) => Promise<{
    isHuman: boolean;
    isBot: boolean;
    isVerifiedBot: boolean;
    bypassed: boolean;
} | {
    responseHeaders?: {
        addHeaders?: Array<{
            key: string;
            value: string;
        }>;
        addValuesToHeaders?: Array<{
            key: string;
            value: string;
        }>;
        replaceHeaders?: Array<{
            key: string;
            value: string;
        }>;
    } | undefined;
    isHuman: boolean;
    isBot: boolean;
    isVerifiedBot: boolean;
    verifiedBotName: string | undefined;
    verifiedBotCategory: string | undefined;
    bypassed: boolean;
    /**
     * @deprecated Reach out to Vercel support to get access to the classificationReason
     */
    classificationReason: string | undefined;
}>;

export { checkBotId };
