import { z } from "zod";
export declare const RouterConfigSchema: z.ZodObject<{
    account_id: z.ZodOptional<z.ZodNumber>;
    script_id: z.ZodOptional<z.ZodNumber>;
    debug: z.ZodOptional<z.ZodBoolean>;
    invoke_user_worker_ahead_of_assets: z.ZodOptional<z.ZodBoolean>;
    has_user_worker: z.ZodOptional<z.ZodBoolean>;
}, "strip", z.ZodTypeAny, {
    account_id?: number;
    script_id?: number;
    debug?: boolean;
    invoke_user_worker_ahead_of_assets?: boolean;
    has_user_worker?: boolean;
}, {
    account_id?: number;
    script_id?: number;
    debug?: boolean;
    invoke_user_worker_ahead_of_assets?: boolean;
    has_user_worker?: boolean;
}>;
declare const MetadataStaticRedirects: z.ZodRecord<z.ZodString, z.ZodObject<{
    status: z.ZodNumber;
    to: z.ZodString;
    lineNumber: z.ZodNumber;
}, "strip", z.ZodTypeAny, {
    status?: number;
    to?: string;
    lineNumber?: number;
}, {
    status?: number;
    to?: string;
    lineNumber?: number;
}>>;
export type MetadataStaticRedirects = z.infer<typeof MetadataStaticRedirects>;
declare const MetadataRedirects: z.ZodRecord<z.ZodString, z.ZodObject<{
    status: z.ZodNumber;
    to: z.ZodString;
}, "strip", z.ZodTypeAny, {
    status?: number;
    to?: string;
}, {
    status?: number;
    to?: string;
}>>;
export type MetadataRedirects = z.infer<typeof MetadataRedirects>;
declare const MetadataHeaders: z.ZodRecord<z.ZodString, z.ZodObject<{
    set: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
    unset: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
}, "strip", z.ZodTypeAny, {
    set?: Record<string, string>;
    unset?: string[];
}, {
    set?: Record<string, string>;
    unset?: string[];
}>>;
export type MetadataHeaders = z.infer<typeof MetadataHeaders>;
export declare const RedirectsSchema: z.ZodOptional<z.ZodObject<{
    version: z.ZodLiteral<1>;
    staticRules: z.ZodRecord<z.ZodString, z.ZodObject<{
        status: z.ZodNumber;
        to: z.ZodString;
        lineNumber: z.ZodNumber;
    }, "strip", z.ZodTypeAny, {
        status?: number;
        to?: string;
        lineNumber?: number;
    }, {
        status?: number;
        to?: string;
        lineNumber?: number;
    }>>;
    rules: z.ZodRecord<z.ZodString, z.ZodObject<{
        status: z.ZodNumber;
        to: z.ZodString;
    }, "strip", z.ZodTypeAny, {
        status?: number;
        to?: string;
    }, {
        status?: number;
        to?: string;
    }>>;
}, "strip", z.ZodTypeAny, {
    version?: 1;
    staticRules?: Record<string, {
        status?: number;
        to?: string;
        lineNumber?: number;
    }>;
    rules?: Record<string, {
        status?: number;
        to?: string;
    }>;
}, {
    version?: 1;
    staticRules?: Record<string, {
        status?: number;
        to?: string;
        lineNumber?: number;
    }>;
    rules?: Record<string, {
        status?: number;
        to?: string;
    }>;
}>>;
export declare const HeadersSchema: z.ZodOptional<z.ZodObject<{
    version: z.ZodLiteral<2>;
    rules: z.ZodRecord<z.ZodString, z.ZodObject<{
        set: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
        unset: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    }, "strip", z.ZodTypeAny, {
        set?: Record<string, string>;
        unset?: string[];
    }, {
        set?: Record<string, string>;
        unset?: string[];
    }>>;
}, "strip", z.ZodTypeAny, {
    version?: 2;
    rules?: Record<string, {
        set?: Record<string, string>;
        unset?: string[];
    }>;
}, {
    version?: 2;
    rules?: Record<string, {
        set?: Record<string, string>;
        unset?: string[];
    }>;
}>>;
export declare const AssetConfigSchema: z.ZodObject<{
    account_id: z.ZodOptional<z.ZodNumber>;
    script_id: z.ZodOptional<z.ZodNumber>;
    debug: z.ZodOptional<z.ZodBoolean>;
    compatibility_date: z.ZodOptional<z.ZodString>;
    compatibility_flags: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    html_handling: z.ZodOptional<z.ZodEnum<["auto-trailing-slash", "force-trailing-slash", "drop-trailing-slash", "none"]>>;
    not_found_handling: z.ZodOptional<z.ZodEnum<["single-page-application", "404-page", "none"]>>;
    redirects: z.ZodOptional<z.ZodObject<{
        version: z.ZodLiteral<1>;
        staticRules: z.ZodRecord<z.ZodString, z.ZodObject<{
            status: z.ZodNumber;
            to: z.ZodString;
            lineNumber: z.ZodNumber;
        }, "strip", z.ZodTypeAny, {
            status?: number;
            to?: string;
            lineNumber?: number;
        }, {
            status?: number;
            to?: string;
            lineNumber?: number;
        }>>;
        rules: z.ZodRecord<z.ZodString, z.ZodObject<{
            status: z.ZodNumber;
            to: z.ZodString;
        }, "strip", z.ZodTypeAny, {
            status?: number;
            to?: string;
        }, {
            status?: number;
            to?: string;
        }>>;
    }, "strip", z.ZodTypeAny, {
        version?: 1;
        staticRules?: Record<string, {
            status?: number;
            to?: string;
            lineNumber?: number;
        }>;
        rules?: Record<string, {
            status?: number;
            to?: string;
        }>;
    }, {
        version?: 1;
        staticRules?: Record<string, {
            status?: number;
            to?: string;
            lineNumber?: number;
        }>;
        rules?: Record<string, {
            status?: number;
            to?: string;
        }>;
    }>>;
    headers: z.ZodOptional<z.ZodObject<{
        version: z.ZodLiteral<2>;
        rules: z.ZodRecord<z.ZodString, z.ZodObject<{
            set: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
            unset: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
        }, "strip", z.ZodTypeAny, {
            set?: Record<string, string>;
            unset?: string[];
        }, {
            set?: Record<string, string>;
            unset?: string[];
        }>>;
    }, "strip", z.ZodTypeAny, {
        version?: 2;
        rules?: Record<string, {
            set?: Record<string, string>;
            unset?: string[];
        }>;
    }, {
        version?: 2;
        rules?: Record<string, {
            set?: Record<string, string>;
            unset?: string[];
        }>;
    }>>;
}, "strip", z.ZodTypeAny, {
    account_id?: number;
    script_id?: number;
    debug?: boolean;
    compatibility_date?: string;
    compatibility_flags?: string[];
    html_handling?: "none" | "auto-trailing-slash" | "force-trailing-slash" | "drop-trailing-slash";
    not_found_handling?: "none" | "single-page-application" | "404-page";
    redirects?: {
        version?: 1;
        staticRules?: Record<string, {
            status?: number;
            to?: string;
            lineNumber?: number;
        }>;
        rules?: Record<string, {
            status?: number;
            to?: string;
        }>;
    };
    headers?: {
        version?: 2;
        rules?: Record<string, {
            set?: Record<string, string>;
            unset?: string[];
        }>;
    };
}, {
    account_id?: number;
    script_id?: number;
    debug?: boolean;
    compatibility_date?: string;
    compatibility_flags?: string[];
    html_handling?: "none" | "auto-trailing-slash" | "force-trailing-slash" | "drop-trailing-slash";
    not_found_handling?: "none" | "single-page-application" | "404-page";
    redirects?: {
        version?: 1;
        staticRules?: Record<string, {
            status?: number;
            to?: string;
            lineNumber?: number;
        }>;
        rules?: Record<string, {
            status?: number;
            to?: string;
        }>;
    };
    headers?: {
        version?: 2;
        rules?: Record<string, {
            set?: Record<string, string>;
            unset?: string[];
        }>;
    };
}>;
export type RouterConfig = z.infer<typeof RouterConfigSchema>;
export type AssetConfig = z.infer<typeof AssetConfigSchema>;
export interface UnsafePerformanceTimer {
    readonly timeOrigin: number;
    now: () => number;
}
export interface JaegerTracing {
    enterSpan<T extends unknown[], R = void>(name: string, span: (s: Span, ...args: T) => R, ...args: T): R;
    getSpanContext(): SpanContext | null;
    runWithSpanContext<T extends unknown[]>(spanContext: SpanContext | null, callback: (...args: T) => unknown, ...args: T): unknown;
    readonly traceId: string | null;
    readonly spanId: string | null;
    readonly parentSpanId: string | null;
    readonly cfTraceIdHeader: string | null;
}
export interface Span {
    addLogs(logs: JaegerRecord): void;
    setTags(tags: JaegerRecord): void;
    end(): void;
    isRecording: boolean;
}
export interface SpanContext {
    traceId: string;
    spanId: string;
    parentSpanId: string;
    traceFlags: number;
}
export type JaegerValue = string | number | boolean;
export type JaegerRecord = Record<string, JaegerValue>;
export interface ColoMetadata {
    metalId: number;
    coloId: number;
    coloRegion: string;
    coloTier: number;
}
export {};
