import { NextRequest, NextFetchEvent, NextResponse } from 'next/server';
import { z } from 'zod';

/**
 * Zod schema for Next.js Cloudflare adapter configuration.
 * Validates the config object returned by the configFn.
 */
declare const NextJsCloudflareConfigSchema: z.ZodObject<{
    /** The slug/path of the lock page to redirect to when the site is locked */
    lockPageSlug: z.ZodEffects<z.ZodString, string, string>;
    /** The Appwarden API token for authentication */
    appwardenApiToken: z.ZodEffects<z.ZodEffects<z.ZodString, string, unknown>, string, unknown>;
    /** Optional custom API hostname (defaults to https://api.appwarden.io) */
    appwardenApiHostname: z.ZodOptional<z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, string, string>, string, string>>;
    /** Enable debug logging */
    debug: z.ZodDefault<z.ZodEffects<z.ZodEffects<z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodBoolean]>>, boolean | "true" | "false", string | boolean | undefined>, boolean, string | boolean | undefined>>;
    /** Optional Content Security Policy configuration (headers only, no HTML rewriting; '{{nonce}}' is not supported) */
    contentSecurityPolicy: z.ZodOptional<z.ZodLazy<z.ZodEffects<z.ZodObject<{
        mode: z.ZodUnion<[z.ZodLiteral<"disabled">, z.ZodLiteral<"report-only">, z.ZodLiteral<"enforced">]>;
        directives: z.ZodEffects<z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodObject<{
            "default-src": z.ZodOptional<z.ZodUnion<[z.ZodArray<z.ZodString, "many">, z.ZodString, z.ZodBoolean]>>;
            "script-src": z.ZodOptional<z.ZodUnion<[z.ZodArray<z.ZodString, "many">, z.ZodString, z.ZodBoolean]>>;
            "style-src": z.ZodOptional<z.ZodUnion<[z.ZodArray<z.ZodString, "many">, z.ZodString, z.ZodBoolean]>>;
            "img-src": z.ZodOptional<z.ZodUnion<[z.ZodArray<z.ZodString, "many">, z.ZodString, z.ZodBoolean]>>;
            "connect-src": z.ZodOptional<z.ZodUnion<[z.ZodArray<z.ZodString, "many">, z.ZodString, z.ZodBoolean]>>;
            "font-src": z.ZodOptional<z.ZodUnion<[z.ZodArray<z.ZodString, "many">, z.ZodString, z.ZodBoolean]>>;
            "object-src": z.ZodOptional<z.ZodUnion<[z.ZodArray<z.ZodString, "many">, z.ZodString, z.ZodBoolean]>>;
            "media-src": z.ZodOptional<z.ZodUnion<[z.ZodArray<z.ZodString, "many">, z.ZodString, z.ZodBoolean]>>;
            "frame-src": z.ZodOptional<z.ZodUnion<[z.ZodArray<z.ZodString, "many">, z.ZodString, z.ZodBoolean]>>;
            sandbox: z.ZodOptional<z.ZodUnion<[z.ZodArray<z.ZodString, "many">, z.ZodString, z.ZodBoolean]>>;
            "report-uri": z.ZodOptional<z.ZodUnion<[z.ZodArray<z.ZodString, "many">, z.ZodString, z.ZodBoolean]>>;
            "child-src": z.ZodOptional<z.ZodUnion<[z.ZodArray<z.ZodString, "many">, z.ZodString, z.ZodBoolean]>>;
            "form-action": z.ZodOptional<z.ZodUnion<[z.ZodArray<z.ZodString, "many">, z.ZodString, z.ZodBoolean]>>;
            "frame-ancestors": z.ZodOptional<z.ZodUnion<[z.ZodArray<z.ZodString, "many">, z.ZodString, z.ZodBoolean]>>;
            "plugin-types": z.ZodOptional<z.ZodUnion<[z.ZodArray<z.ZodString, "many">, z.ZodString, z.ZodBoolean]>>;
            "base-uri": z.ZodOptional<z.ZodUnion<[z.ZodArray<z.ZodString, "many">, z.ZodString, z.ZodBoolean]>>;
            "report-to": z.ZodOptional<z.ZodUnion<[z.ZodArray<z.ZodString, "many">, z.ZodString, z.ZodBoolean]>>;
            "worker-src": z.ZodOptional<z.ZodUnion<[z.ZodArray<z.ZodString, "many">, z.ZodString, z.ZodBoolean]>>;
            "manifest-src": z.ZodOptional<z.ZodUnion<[z.ZodArray<z.ZodString, "many">, z.ZodString, z.ZodBoolean]>>;
            "prefetch-src": z.ZodOptional<z.ZodUnion<[z.ZodArray<z.ZodString, "many">, z.ZodString, z.ZodBoolean]>>;
            "navigate-to": z.ZodOptional<z.ZodUnion<[z.ZodArray<z.ZodString, "many">, z.ZodString, z.ZodBoolean]>>;
            "require-sri-for": z.ZodOptional<z.ZodUnion<[z.ZodArray<z.ZodString, "many">, z.ZodString, z.ZodBoolean]>>;
            "block-all-mixed-content": z.ZodOptional<z.ZodUnion<[z.ZodArray<z.ZodString, "many">, z.ZodString, z.ZodBoolean]>>;
            "upgrade-insecure-requests": z.ZodOptional<z.ZodUnion<[z.ZodArray<z.ZodString, "many">, z.ZodString, z.ZodBoolean]>>;
            "trusted-types": z.ZodOptional<z.ZodUnion<[z.ZodArray<z.ZodString, "many">, z.ZodString, z.ZodBoolean]>>;
            "require-trusted-types-for": z.ZodOptional<z.ZodUnion<[z.ZodArray<z.ZodString, "many">, z.ZodString, z.ZodBoolean]>>;
        }, "strip", z.ZodTypeAny, {
            "default-src"?: string | boolean | string[] | undefined;
            "script-src"?: string | boolean | string[] | undefined;
            "style-src"?: string | boolean | string[] | undefined;
            "img-src"?: string | boolean | string[] | undefined;
            "connect-src"?: string | boolean | string[] | undefined;
            "font-src"?: string | boolean | string[] | undefined;
            "object-src"?: string | boolean | string[] | undefined;
            "media-src"?: string | boolean | string[] | undefined;
            "frame-src"?: string | boolean | string[] | undefined;
            sandbox?: string | boolean | string[] | undefined;
            "report-uri"?: string | boolean | string[] | undefined;
            "child-src"?: string | boolean | string[] | undefined;
            "form-action"?: string | boolean | string[] | undefined;
            "frame-ancestors"?: string | boolean | string[] | undefined;
            "plugin-types"?: string | boolean | string[] | undefined;
            "base-uri"?: string | boolean | string[] | undefined;
            "report-to"?: string | boolean | string[] | undefined;
            "worker-src"?: string | boolean | string[] | undefined;
            "manifest-src"?: string | boolean | string[] | undefined;
            "prefetch-src"?: string | boolean | string[] | undefined;
            "navigate-to"?: string | boolean | string[] | undefined;
            "require-sri-for"?: string | boolean | string[] | undefined;
            "block-all-mixed-content"?: string | boolean | string[] | undefined;
            "upgrade-insecure-requests"?: string | boolean | string[] | undefined;
            "trusted-types"?: string | boolean | string[] | undefined;
            "require-trusted-types-for"?: string | boolean | string[] | undefined;
        }, {
            "default-src"?: string | boolean | string[] | undefined;
            "script-src"?: string | boolean | string[] | undefined;
            "style-src"?: string | boolean | string[] | undefined;
            "img-src"?: string | boolean | string[] | undefined;
            "connect-src"?: string | boolean | string[] | undefined;
            "font-src"?: string | boolean | string[] | undefined;
            "object-src"?: string | boolean | string[] | undefined;
            "media-src"?: string | boolean | string[] | undefined;
            "frame-src"?: string | boolean | string[] | undefined;
            sandbox?: string | boolean | string[] | undefined;
            "report-uri"?: string | boolean | string[] | undefined;
            "child-src"?: string | boolean | string[] | undefined;
            "form-action"?: string | boolean | string[] | undefined;
            "frame-ancestors"?: string | boolean | string[] | undefined;
            "plugin-types"?: string | boolean | string[] | undefined;
            "base-uri"?: string | boolean | string[] | undefined;
            "report-to"?: string | boolean | string[] | undefined;
            "worker-src"?: string | boolean | string[] | undefined;
            "manifest-src"?: string | boolean | string[] | undefined;
            "prefetch-src"?: string | boolean | string[] | undefined;
            "navigate-to"?: string | boolean | string[] | undefined;
            "require-sri-for"?: string | boolean | string[] | undefined;
            "block-all-mixed-content"?: string | boolean | string[] | undefined;
            "upgrade-insecure-requests"?: string | boolean | string[] | undefined;
            "trusted-types"?: string | boolean | string[] | undefined;
            "require-trusted-types-for"?: string | boolean | string[] | undefined;
        }>]>, string | {
            "default-src"?: string | boolean | string[] | undefined;
            "script-src"?: string | boolean | string[] | undefined;
            "style-src"?: string | boolean | string[] | undefined;
            "img-src"?: string | boolean | string[] | undefined;
            "connect-src"?: string | boolean | string[] | undefined;
            "font-src"?: string | boolean | string[] | undefined;
            "object-src"?: string | boolean | string[] | undefined;
            "media-src"?: string | boolean | string[] | undefined;
            "frame-src"?: string | boolean | string[] | undefined;
            sandbox?: string | boolean | string[] | undefined;
            "report-uri"?: string | boolean | string[] | undefined;
            "child-src"?: string | boolean | string[] | undefined;
            "form-action"?: string | boolean | string[] | undefined;
            "frame-ancestors"?: string | boolean | string[] | undefined;
            "plugin-types"?: string | boolean | string[] | undefined;
            "base-uri"?: string | boolean | string[] | undefined;
            "report-to"?: string | boolean | string[] | undefined;
            "worker-src"?: string | boolean | string[] | undefined;
            "manifest-src"?: string | boolean | string[] | undefined;
            "prefetch-src"?: string | boolean | string[] | undefined;
            "navigate-to"?: string | boolean | string[] | undefined;
            "require-sri-for"?: string | boolean | string[] | undefined;
            "block-all-mixed-content"?: string | boolean | string[] | undefined;
            "upgrade-insecure-requests"?: string | boolean | string[] | undefined;
            "trusted-types"?: string | boolean | string[] | undefined;
            "require-trusted-types-for"?: string | boolean | string[] | undefined;
        }, string | {
            "default-src"?: string | boolean | string[] | undefined;
            "script-src"?: string | boolean | string[] | undefined;
            "style-src"?: string | boolean | string[] | undefined;
            "img-src"?: string | boolean | string[] | undefined;
            "connect-src"?: string | boolean | string[] | undefined;
            "font-src"?: string | boolean | string[] | undefined;
            "object-src"?: string | boolean | string[] | undefined;
            "media-src"?: string | boolean | string[] | undefined;
            "frame-src"?: string | boolean | string[] | undefined;
            sandbox?: string | boolean | string[] | undefined;
            "report-uri"?: string | boolean | string[] | undefined;
            "child-src"?: string | boolean | string[] | undefined;
            "form-action"?: string | boolean | string[] | undefined;
            "frame-ancestors"?: string | boolean | string[] | undefined;
            "plugin-types"?: string | boolean | string[] | undefined;
            "base-uri"?: string | boolean | string[] | undefined;
            "report-to"?: string | boolean | string[] | undefined;
            "worker-src"?: string | boolean | string[] | undefined;
            "manifest-src"?: string | boolean | string[] | undefined;
            "prefetch-src"?: string | boolean | string[] | undefined;
            "navigate-to"?: string | boolean | string[] | undefined;
            "require-sri-for"?: string | boolean | string[] | undefined;
            "block-all-mixed-content"?: string | boolean | string[] | undefined;
            "upgrade-insecure-requests"?: string | boolean | string[] | undefined;
            "trusted-types"?: string | boolean | string[] | undefined;
            "require-trusted-types-for"?: string | boolean | string[] | undefined;
        }>, {
            "default-src"?: string | boolean | string[] | undefined;
            "script-src"?: string | boolean | string[] | undefined;
            "style-src"?: string | boolean | string[] | undefined;
            "img-src"?: string | boolean | string[] | undefined;
            "connect-src"?: string | boolean | string[] | undefined;
            "font-src"?: string | boolean | string[] | undefined;
            "object-src"?: string | boolean | string[] | undefined;
            "media-src"?: string | boolean | string[] | undefined;
            "frame-src"?: string | boolean | string[] | undefined;
            sandbox?: string | boolean | string[] | undefined;
            "report-uri"?: string | boolean | string[] | undefined;
            "child-src"?: string | boolean | string[] | undefined;
            "form-action"?: string | boolean | string[] | undefined;
            "frame-ancestors"?: string | boolean | string[] | undefined;
            "plugin-types"?: string | boolean | string[] | undefined;
            "base-uri"?: string | boolean | string[] | undefined;
            "report-to"?: string | boolean | string[] | undefined;
            "worker-src"?: string | boolean | string[] | undefined;
            "manifest-src"?: string | boolean | string[] | undefined;
            "prefetch-src"?: string | boolean | string[] | undefined;
            "navigate-to"?: string | boolean | string[] | undefined;
            "require-sri-for"?: string | boolean | string[] | undefined;
            "block-all-mixed-content"?: string | boolean | string[] | undefined;
            "upgrade-insecure-requests"?: string | boolean | string[] | undefined;
            "trusted-types"?: string | boolean | string[] | undefined;
            "require-trusted-types-for"?: string | boolean | string[] | undefined;
        } | undefined, string | {
            "default-src"?: string | boolean | string[] | undefined;
            "script-src"?: string | boolean | string[] | undefined;
            "style-src"?: string | boolean | string[] | undefined;
            "img-src"?: string | boolean | string[] | undefined;
            "connect-src"?: string | boolean | string[] | undefined;
            "font-src"?: string | boolean | string[] | undefined;
            "object-src"?: string | boolean | string[] | undefined;
            "media-src"?: string | boolean | string[] | undefined;
            "frame-src"?: string | boolean | string[] | undefined;
            sandbox?: string | boolean | string[] | undefined;
            "report-uri"?: string | boolean | string[] | undefined;
            "child-src"?: string | boolean | string[] | undefined;
            "form-action"?: string | boolean | string[] | undefined;
            "frame-ancestors"?: string | boolean | string[] | undefined;
            "plugin-types"?: string | boolean | string[] | undefined;
            "base-uri"?: string | boolean | string[] | undefined;
            "report-to"?: string | boolean | string[] | undefined;
            "worker-src"?: string | boolean | string[] | undefined;
            "manifest-src"?: string | boolean | string[] | undefined;
            "prefetch-src"?: string | boolean | string[] | undefined;
            "navigate-to"?: string | boolean | string[] | undefined;
            "require-sri-for"?: string | boolean | string[] | undefined;
            "block-all-mixed-content"?: string | boolean | string[] | undefined;
            "upgrade-insecure-requests"?: string | boolean | string[] | undefined;
            "trusted-types"?: string | boolean | string[] | undefined;
            "require-trusted-types-for"?: string | boolean | string[] | undefined;
        }>;
    }, "strip", z.ZodTypeAny, {
        mode: "disabled" | "report-only" | "enforced";
        directives?: {
            "default-src"?: string | boolean | string[] | undefined;
            "script-src"?: string | boolean | string[] | undefined;
            "style-src"?: string | boolean | string[] | undefined;
            "img-src"?: string | boolean | string[] | undefined;
            "connect-src"?: string | boolean | string[] | undefined;
            "font-src"?: string | boolean | string[] | undefined;
            "object-src"?: string | boolean | string[] | undefined;
            "media-src"?: string | boolean | string[] | undefined;
            "frame-src"?: string | boolean | string[] | undefined;
            sandbox?: string | boolean | string[] | undefined;
            "report-uri"?: string | boolean | string[] | undefined;
            "child-src"?: string | boolean | string[] | undefined;
            "form-action"?: string | boolean | string[] | undefined;
            "frame-ancestors"?: string | boolean | string[] | undefined;
            "plugin-types"?: string | boolean | string[] | undefined;
            "base-uri"?: string | boolean | string[] | undefined;
            "report-to"?: string | boolean | string[] | undefined;
            "worker-src"?: string | boolean | string[] | undefined;
            "manifest-src"?: string | boolean | string[] | undefined;
            "prefetch-src"?: string | boolean | string[] | undefined;
            "navigate-to"?: string | boolean | string[] | undefined;
            "require-sri-for"?: string | boolean | string[] | undefined;
            "block-all-mixed-content"?: string | boolean | string[] | undefined;
            "upgrade-insecure-requests"?: string | boolean | string[] | undefined;
            "trusted-types"?: string | boolean | string[] | undefined;
            "require-trusted-types-for"?: string | boolean | string[] | undefined;
        } | undefined;
    }, {
        mode: "disabled" | "report-only" | "enforced";
        directives: string | {
            "default-src"?: string | boolean | string[] | undefined;
            "script-src"?: string | boolean | string[] | undefined;
            "style-src"?: string | boolean | string[] | undefined;
            "img-src"?: string | boolean | string[] | undefined;
            "connect-src"?: string | boolean | string[] | undefined;
            "font-src"?: string | boolean | string[] | undefined;
            "object-src"?: string | boolean | string[] | undefined;
            "media-src"?: string | boolean | string[] | undefined;
            "frame-src"?: string | boolean | string[] | undefined;
            sandbox?: string | boolean | string[] | undefined;
            "report-uri"?: string | boolean | string[] | undefined;
            "child-src"?: string | boolean | string[] | undefined;
            "form-action"?: string | boolean | string[] | undefined;
            "frame-ancestors"?: string | boolean | string[] | undefined;
            "plugin-types"?: string | boolean | string[] | undefined;
            "base-uri"?: string | boolean | string[] | undefined;
            "report-to"?: string | boolean | string[] | undefined;
            "worker-src"?: string | boolean | string[] | undefined;
            "manifest-src"?: string | boolean | string[] | undefined;
            "prefetch-src"?: string | boolean | string[] | undefined;
            "navigate-to"?: string | boolean | string[] | undefined;
            "require-sri-for"?: string | boolean | string[] | undefined;
            "block-all-mixed-content"?: string | boolean | string[] | undefined;
            "upgrade-insecure-requests"?: string | boolean | string[] | undefined;
            "trusted-types"?: string | boolean | string[] | undefined;
            "require-trusted-types-for"?: string | boolean | string[] | undefined;
        };
    }>, {
        mode: "disabled" | "report-only" | "enforced";
        directives?: {
            "default-src"?: string | boolean | string[] | undefined;
            "script-src"?: string | boolean | string[] | undefined;
            "style-src"?: string | boolean | string[] | undefined;
            "img-src"?: string | boolean | string[] | undefined;
            "connect-src"?: string | boolean | string[] | undefined;
            "font-src"?: string | boolean | string[] | undefined;
            "object-src"?: string | boolean | string[] | undefined;
            "media-src"?: string | boolean | string[] | undefined;
            "frame-src"?: string | boolean | string[] | undefined;
            sandbox?: string | boolean | string[] | undefined;
            "report-uri"?: string | boolean | string[] | undefined;
            "child-src"?: string | boolean | string[] | undefined;
            "form-action"?: string | boolean | string[] | undefined;
            "frame-ancestors"?: string | boolean | string[] | undefined;
            "plugin-types"?: string | boolean | string[] | undefined;
            "base-uri"?: string | boolean | string[] | undefined;
            "report-to"?: string | boolean | string[] | undefined;
            "worker-src"?: string | boolean | string[] | undefined;
            "manifest-src"?: string | boolean | string[] | undefined;
            "prefetch-src"?: string | boolean | string[] | undefined;
            "navigate-to"?: string | boolean | string[] | undefined;
            "require-sri-for"?: string | boolean | string[] | undefined;
            "block-all-mixed-content"?: string | boolean | string[] | undefined;
            "upgrade-insecure-requests"?: string | boolean | string[] | undefined;
            "trusted-types"?: string | boolean | string[] | undefined;
            "require-trusted-types-for"?: string | boolean | string[] | undefined;
        } | undefined;
    }, {
        mode: "disabled" | "report-only" | "enforced";
        directives: string | {
            "default-src"?: string | boolean | string[] | undefined;
            "script-src"?: string | boolean | string[] | undefined;
            "style-src"?: string | boolean | string[] | undefined;
            "img-src"?: string | boolean | string[] | undefined;
            "connect-src"?: string | boolean | string[] | undefined;
            "font-src"?: string | boolean | string[] | undefined;
            "object-src"?: string | boolean | string[] | undefined;
            "media-src"?: string | boolean | string[] | undefined;
            "frame-src"?: string | boolean | string[] | undefined;
            sandbox?: string | boolean | string[] | undefined;
            "report-uri"?: string | boolean | string[] | undefined;
            "child-src"?: string | boolean | string[] | undefined;
            "form-action"?: string | boolean | string[] | undefined;
            "frame-ancestors"?: string | boolean | string[] | undefined;
            "plugin-types"?: string | boolean | string[] | undefined;
            "base-uri"?: string | boolean | string[] | undefined;
            "report-to"?: string | boolean | string[] | undefined;
            "worker-src"?: string | boolean | string[] | undefined;
            "manifest-src"?: string | boolean | string[] | undefined;
            "prefetch-src"?: string | boolean | string[] | undefined;
            "navigate-to"?: string | boolean | string[] | undefined;
            "require-sri-for"?: string | boolean | string[] | undefined;
            "block-all-mixed-content"?: string | boolean | string[] | undefined;
            "upgrade-insecure-requests"?: string | boolean | string[] | undefined;
            "trusted-types"?: string | boolean | string[] | undefined;
            "require-trusted-types-for"?: string | boolean | string[] | undefined;
        };
    }>>>;
}, "strip", z.ZodTypeAny, {
    debug: boolean;
    lockPageSlug: string;
    appwardenApiToken: string;
    contentSecurityPolicy?: {
        mode: "disabled" | "report-only" | "enforced";
        directives?: {
            "default-src"?: string | boolean | string[] | undefined;
            "script-src"?: string | boolean | string[] | undefined;
            "style-src"?: string | boolean | string[] | undefined;
            "img-src"?: string | boolean | string[] | undefined;
            "connect-src"?: string | boolean | string[] | undefined;
            "font-src"?: string | boolean | string[] | undefined;
            "object-src"?: string | boolean | string[] | undefined;
            "media-src"?: string | boolean | string[] | undefined;
            "frame-src"?: string | boolean | string[] | undefined;
            sandbox?: string | boolean | string[] | undefined;
            "report-uri"?: string | boolean | string[] | undefined;
            "child-src"?: string | boolean | string[] | undefined;
            "form-action"?: string | boolean | string[] | undefined;
            "frame-ancestors"?: string | boolean | string[] | undefined;
            "plugin-types"?: string | boolean | string[] | undefined;
            "base-uri"?: string | boolean | string[] | undefined;
            "report-to"?: string | boolean | string[] | undefined;
            "worker-src"?: string | boolean | string[] | undefined;
            "manifest-src"?: string | boolean | string[] | undefined;
            "prefetch-src"?: string | boolean | string[] | undefined;
            "navigate-to"?: string | boolean | string[] | undefined;
            "require-sri-for"?: string | boolean | string[] | undefined;
            "block-all-mixed-content"?: string | boolean | string[] | undefined;
            "upgrade-insecure-requests"?: string | boolean | string[] | undefined;
            "trusted-types"?: string | boolean | string[] | undefined;
            "require-trusted-types-for"?: string | boolean | string[] | undefined;
        } | undefined;
    } | undefined;
    appwardenApiHostname?: string | undefined;
}, {
    lockPageSlug: string;
    debug?: string | boolean | undefined;
    contentSecurityPolicy?: {
        mode: "disabled" | "report-only" | "enforced";
        directives: string | {
            "default-src"?: string | boolean | string[] | undefined;
            "script-src"?: string | boolean | string[] | undefined;
            "style-src"?: string | boolean | string[] | undefined;
            "img-src"?: string | boolean | string[] | undefined;
            "connect-src"?: string | boolean | string[] | undefined;
            "font-src"?: string | boolean | string[] | undefined;
            "object-src"?: string | boolean | string[] | undefined;
            "media-src"?: string | boolean | string[] | undefined;
            "frame-src"?: string | boolean | string[] | undefined;
            sandbox?: string | boolean | string[] | undefined;
            "report-uri"?: string | boolean | string[] | undefined;
            "child-src"?: string | boolean | string[] | undefined;
            "form-action"?: string | boolean | string[] | undefined;
            "frame-ancestors"?: string | boolean | string[] | undefined;
            "plugin-types"?: string | boolean | string[] | undefined;
            "base-uri"?: string | boolean | string[] | undefined;
            "report-to"?: string | boolean | string[] | undefined;
            "worker-src"?: string | boolean | string[] | undefined;
            "manifest-src"?: string | boolean | string[] | undefined;
            "prefetch-src"?: string | boolean | string[] | undefined;
            "navigate-to"?: string | boolean | string[] | undefined;
            "require-sri-for"?: string | boolean | string[] | undefined;
            "block-all-mixed-content"?: string | boolean | string[] | undefined;
            "upgrade-insecure-requests"?: string | boolean | string[] | undefined;
            "trusted-types"?: string | boolean | string[] | undefined;
            "require-trusted-types-for"?: string | boolean | string[] | undefined;
        };
    } | undefined;
    appwardenApiToken?: unknown;
    appwardenApiHostname?: string | undefined;
}>;
type NextJsCloudflareConfig = z.infer<typeof NextJsCloudflareConfigSchema>;
/**
 * Input type for Next.js Cloudflare adapter configuration.
 * This is the pre-transformation type that accepts string | boolean for debug
 * and string | object for CSP directives, allowing users to pass environment
 * variables directly without manual transformation.
 */
type NextJsCloudflareConfigInput = z.input<typeof NextJsCloudflareConfigSchema>;

declare function getAppwardenConfiguration(generatedConfig: Record<string, unknown>, config: Partial<NextJsCloudflareConfigInput>): NextJsCloudflareConfig;
/**
 * Cloudflare runtime context provided by @opennextjs/cloudflare.
 * This is the shape of the context returned by getCloudflareContext().
 */
interface NextJsCloudflareRuntime {
    env: CloudflareEnv;
    ctx: ExecutionContext;
}
/**
 * Configuration for the Appwarden middleware.
 *
 * This is an alias of the validated output type from
 * NextJsCloudflareConfigSchema, so it always stays in sync with the
 * actual runtime config contract.
 */
type NextJsCloudflareAppwardenConfig = NextJsCloudflareConfig;

/**
 * Configuration function that receives the Cloudflare runtime and returns the config.
 * This allows dynamic configuration based on environment variables.
 * Accepts pre-transformation input types (e.g., string | boolean for debug, string | object for CSP directives).
 */
type NextJsCloudflareConfigFn = (runtime: NextJsCloudflareRuntime) => NextJsCloudflareConfigInput | NextJsCloudflareConfig;
/**
 * Next.js middleware function signature.
 * Compatible with both middleware.ts and proxy.ts (Next.js 16+).
 */
type NextJsMiddlewareFunction = (request: NextRequest, event?: NextFetchEvent) => Promise<NextResponse>;
/**
 * Creates an Appwarden middleware function for Next.js on Cloudflare.
 *
 * This middleware checks if the site is locked and redirects to the lock page if so.
 * It uses @opennextjs/cloudflare to access Cloudflare bindings and context.
 *
 * @example
 * ```typescript
 * // middleware.ts (or proxy.ts for Next.js 16+)
 * import { createAppwardenMiddleware } from "@appwarden/middleware/opennext-cloudflare"
 *
 * export const config = {
 *   matcher: ["/((?!api|_next/static|_next/image|favicon.ico).*)"],
 * }
 *
 * export default createAppwardenMiddleware(({ env }) => ({
 *   lockPageSlug: env.APPWARDEN_LOCK_PAGE_SLUG,
 *   appwardenApiToken: env.APPWARDEN_API_TOKEN,
 * }))
 * ```
 *
 * @param configFn - A function that receives the Cloudflare runtime and returns the config
 * @returns A Next.js middleware function
 */
declare function createAppwardenMiddleware(configFn: NextJsCloudflareConfigFn): NextJsMiddlewareFunction;

export { type NextJsCloudflareAppwardenConfig, type NextJsCloudflareConfig, type NextJsCloudflareConfigFn, type NextJsCloudflareConfigInput, type NextJsCloudflareRuntime, type NextJsMiddlewareFunction, createAppwardenMiddleware, getAppwardenConfiguration };
