import { z } from 'zod';
/**
 * Message-level metadata (stored in encrypted message bodies).
 *
 * Forward compatibility is critical here: older clients must not fail to parse
 * messages when new fields or new enum values are introduced.
 */
export declare function createSessionMessageMetaSchema(zod: typeof z): z.ZodObject<{
    sentFrom: z.ZodOptional<z.ZodCatch<z.ZodEnum<{
        unknown: "unknown";
        cli: "cli";
        voice_agent: "voice_agent";
        web: "web";
        android: "android";
        ios: "ios";
        mac: "mac";
        retry: "retry";
        e2e: "e2e";
    }>>>;
    source: z.ZodOptional<z.ZodUnion<readonly [z.ZodEnum<{
        cli: "cli";
        ui: "ui";
    }>, z.ZodString]>>;
    permissionMode: z.ZodOptional<z.ZodCatch<z.ZodEnum<{
        default: "default";
        plan: "plan";
        acceptEdits: "acceptEdits";
        bypassPermissions: "bypassPermissions";
        "read-only": "read-only";
        "safe-yolo": "safe-yolo";
        yolo: "yolo";
    }>>>;
    model: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    fallbackModel: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    customSystemPrompt: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    appendSystemPrompt: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    allowedTools: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodString>>>;
    disallowedTools: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodString>>>;
    displayText: z.ZodOptional<z.ZodString>;
    happier: z.ZodOptional<z.ZodObject<{
        kind: z.ZodString;
        payload: z.ZodUnknown;
    }, z.core.$strip>>;
}, z.core.$loose>;
export declare const SessionMessageMetaSchema: z.ZodObject<{
    sentFrom: z.ZodOptional<z.ZodCatch<z.ZodEnum<{
        unknown: "unknown";
        cli: "cli";
        voice_agent: "voice_agent";
        web: "web";
        android: "android";
        ios: "ios";
        mac: "mac";
        retry: "retry";
        e2e: "e2e";
    }>>>;
    source: z.ZodOptional<z.ZodUnion<readonly [z.ZodEnum<{
        cli: "cli";
        ui: "ui";
    }>, z.ZodString]>>;
    permissionMode: z.ZodOptional<z.ZodCatch<z.ZodEnum<{
        default: "default";
        plan: "plan";
        acceptEdits: "acceptEdits";
        bypassPermissions: "bypassPermissions";
        "read-only": "read-only";
        "safe-yolo": "safe-yolo";
        yolo: "yolo";
    }>>>;
    model: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    fallbackModel: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    customSystemPrompt: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    appendSystemPrompt: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    allowedTools: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodString>>>;
    disallowedTools: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodString>>>;
    displayText: z.ZodOptional<z.ZodString>;
    happier: z.ZodOptional<z.ZodObject<{
        kind: z.ZodString;
        payload: z.ZodUnknown;
    }, z.core.$strip>>;
}, z.core.$loose>;
export type SessionMessageMeta = z.infer<typeof SessionMessageMetaSchema>;
//# sourceMappingURL=sessionMessageMeta.d.ts.map