/**
 * Zod schemas for RuntimeContext validation.
 */
import { z } from 'zod';
export declare const PageContextZ: z.ZodObject<{
    url: z.ZodString;
    routeId: z.ZodOptional<z.ZodString>;
    title: z.ZodOptional<z.ZodString>;
    locale: z.ZodOptional<z.ZodString>;
}, "strip", z.ZodTypeAny, {
    url: string;
    title?: string | undefined;
    routeId?: string | undefined;
    locale?: string | undefined;
}, {
    url: string;
    title?: string | undefined;
    routeId?: string | undefined;
    locale?: string | undefined;
}>;
export declare const PageHistoryEntryZ: z.ZodObject<{
    url: z.ZodString;
    ts: z.ZodNumber;
}, "strip", z.ZodTypeAny, {
    url: string;
    ts: number;
}, {
    url: string;
    ts: number;
}>;
export declare const SessionContextZ: z.ZodObject<{
    sessionId: z.ZodString;
    startTs: z.ZodNumber;
    pageHistory: z.ZodOptional<z.ZodArray<z.ZodObject<{
        url: z.ZodString;
        ts: z.ZodNumber;
    }, "strip", z.ZodTypeAny, {
        url: string;
        ts: number;
    }, {
        url: string;
        ts: number;
    }>, "many">>;
}, "strip", z.ZodTypeAny, {
    sessionId: string;
    startTs: number;
    pageHistory?: {
        url: string;
        ts: number;
    }[] | undefined;
}, {
    sessionId: string;
    startTs: number;
    pageHistory?: {
        url: string;
        ts: number;
    }[] | undefined;
}>;
export declare const ViewportContextZ: z.ZodObject<{
    width: z.ZodNumber;
    height: z.ZodNumber;
}, "strip", z.ZodTypeAny, {
    width: number;
    height: number;
}, {
    width: number;
    height: number;
}>;
export declare const BoundingBoxZ: z.ZodObject<{
    x: z.ZodNumber;
    y: z.ZodNumber;
    w: z.ZodNumber;
    h: z.ZodNumber;
}, "strip", z.ZodTypeAny, {
    x: number;
    y: number;
    w: number;
    h: number;
}, {
    x: number;
    y: number;
    w: number;
    h: number;
}>;
export declare const AnchorStateZ: z.ZodObject<{
    anchorId: z.ZodString;
    present: z.ZodBoolean;
    visible: z.ZodOptional<z.ZodBoolean>;
    boundingBox: z.ZodOptional<z.ZodObject<{
        x: z.ZodNumber;
        y: z.ZodNumber;
        w: z.ZodNumber;
        h: z.ZodNumber;
    }, "strip", z.ZodTypeAny, {
        x: number;
        y: number;
        w: number;
        h: number;
    }, {
        x: number;
        y: number;
        w: number;
        h: number;
    }>>;
}, "strip", z.ZodTypeAny, {
    present: boolean;
    anchorId: string;
    visible?: boolean | undefined;
    boundingBox?: {
        x: number;
        y: number;
        w: number;
        h: number;
    } | undefined;
}, {
    present: boolean;
    anchorId: string;
    visible?: boolean | undefined;
    boundingBox?: {
        x: number;
        y: number;
        w: number;
        h: number;
    } | undefined;
}>;
export declare const AugmentationZ: z.ZodRecord<z.ZodString, z.ZodUnion<[z.ZodNumber, z.ZodString, z.ZodBoolean, z.ZodUndefined]>>;
export declare const RuntimeContextZ: z.ZodObject<{
    page: z.ZodObject<{
        url: z.ZodString;
        routeId: z.ZodOptional<z.ZodString>;
        title: z.ZodOptional<z.ZodString>;
        locale: z.ZodOptional<z.ZodString>;
    }, "strip", z.ZodTypeAny, {
        url: string;
        title?: string | undefined;
        routeId?: string | undefined;
        locale?: string | undefined;
    }, {
        url: string;
        title?: string | undefined;
        routeId?: string | undefined;
        locale?: string | undefined;
    }>;
    session: z.ZodObject<{
        sessionId: z.ZodString;
        startTs: z.ZodNumber;
        pageHistory: z.ZodOptional<z.ZodArray<z.ZodObject<{
            url: z.ZodString;
            ts: z.ZodNumber;
        }, "strip", z.ZodTypeAny, {
            url: string;
            ts: number;
        }, {
            url: string;
            ts: number;
        }>, "many">>;
    }, "strip", z.ZodTypeAny, {
        sessionId: string;
        startTs: number;
        pageHistory?: {
            url: string;
            ts: number;
        }[] | undefined;
    }, {
        sessionId: string;
        startTs: number;
        pageHistory?: {
            url: string;
            ts: number;
        }[] | undefined;
    }>;
    viewport: z.ZodObject<{
        width: z.ZodNumber;
        height: z.ZodNumber;
    }, "strip", z.ZodTypeAny, {
        width: number;
        height: number;
    }, {
        width: number;
        height: number;
    }>;
    anchors: z.ZodOptional<z.ZodArray<z.ZodObject<{
        anchorId: z.ZodString;
        present: z.ZodBoolean;
        visible: z.ZodOptional<z.ZodBoolean>;
        boundingBox: z.ZodOptional<z.ZodObject<{
            x: z.ZodNumber;
            y: z.ZodNumber;
            w: z.ZodNumber;
            h: z.ZodNumber;
        }, "strip", z.ZodTypeAny, {
            x: number;
            y: number;
            w: number;
            h: number;
        }, {
            x: number;
            y: number;
            w: number;
            h: number;
        }>>;
    }, "strip", z.ZodTypeAny, {
        present: boolean;
        anchorId: string;
        visible?: boolean | undefined;
        boundingBox?: {
            x: number;
            y: number;
            w: number;
            h: number;
        } | undefined;
    }, {
        present: boolean;
        anchorId: string;
        visible?: boolean | undefined;
        boundingBox?: {
            x: number;
            y: number;
            w: number;
            h: number;
        } | undefined;
    }>, "many">>;
    augmented: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<[z.ZodNumber, z.ZodString, z.ZodBoolean, z.ZodUndefined]>>>;
}, "strip", z.ZodTypeAny, {
    viewport: {
        width: number;
        height: number;
    };
    page: {
        url: string;
        title?: string | undefined;
        routeId?: string | undefined;
        locale?: string | undefined;
    };
    session: {
        sessionId: string;
        startTs: number;
        pageHistory?: {
            url: string;
            ts: number;
        }[] | undefined;
    };
    anchors?: {
        present: boolean;
        anchorId: string;
        visible?: boolean | undefined;
        boundingBox?: {
            x: number;
            y: number;
            w: number;
            h: number;
        } | undefined;
    }[] | undefined;
    augmented?: Record<string, string | number | boolean | undefined> | undefined;
}, {
    viewport: {
        width: number;
        height: number;
    };
    page: {
        url: string;
        title?: string | undefined;
        routeId?: string | undefined;
        locale?: string | undefined;
    };
    session: {
        sessionId: string;
        startTs: number;
        pageHistory?: {
            url: string;
            ts: number;
        }[] | undefined;
    };
    anchors?: {
        present: boolean;
        anchorId: string;
        visible?: boolean | undefined;
        boundingBox?: {
            x: number;
            y: number;
            w: number;
            h: number;
        } | undefined;
    }[] | undefined;
    augmented?: Record<string, string | number | boolean | undefined> | undefined;
}>;
/**
 * Validate a RuntimeContext object.
 */
export declare function validateRuntimeContext(data: unknown): z.SafeParseReturnType<{
    viewport: {
        width: number;
        height: number;
    };
    page: {
        url: string;
        title?: string | undefined;
        routeId?: string | undefined;
        locale?: string | undefined;
    };
    session: {
        sessionId: string;
        startTs: number;
        pageHistory?: {
            url: string;
            ts: number;
        }[] | undefined;
    };
    anchors?: {
        present: boolean;
        anchorId: string;
        visible?: boolean | undefined;
        boundingBox?: {
            x: number;
            y: number;
            w: number;
            h: number;
        } | undefined;
    }[] | undefined;
    augmented?: Record<string, string | number | boolean | undefined> | undefined;
}, {
    viewport: {
        width: number;
        height: number;
    };
    page: {
        url: string;
        title?: string | undefined;
        routeId?: string | undefined;
        locale?: string | undefined;
    };
    session: {
        sessionId: string;
        startTs: number;
        pageHistory?: {
            url: string;
            ts: number;
        }[] | undefined;
    };
    anchors?: {
        present: boolean;
        anchorId: string;
        visible?: boolean | undefined;
        boundingBox?: {
            x: number;
            y: number;
            w: number;
            h: number;
        } | undefined;
    }[] | undefined;
    augmented?: Record<string, string | number | boolean | undefined> | undefined;
}>;
/**
 * Type inference from Zod schema.
 */
export type RuntimeContextSchema = z.infer<typeof RuntimeContextZ>;
export type PageContextSchema = z.infer<typeof PageContextZ>;
export type SessionContextSchema = z.infer<typeof SessionContextZ>;
export type ViewportContextSchema = z.infer<typeof ViewportContextZ>;
export type AnchorStateSchema = z.infer<typeof AnchorStateZ>;
