import { z } from 'zod';
export declare function createSessionRollbackRangeV1Schema(zod: typeof z): z.ZodObject<{
    target: z.ZodDiscriminatedUnion<[z.ZodObject<{
        type: z.ZodLiteral<"latest_turn">;
    }, z.core.$strict>, z.ZodObject<{
        type: z.ZodLiteral<"before_user_message">;
        userMessageSeq: z.ZodNumber;
    }, z.core.$strict>], "type">;
    startSeqInclusive: z.ZodNumber;
    endSeqInclusive: z.ZodNumber;
    rolledBackAt: z.ZodNumber;
}, z.core.$loose>;
export declare const SessionRollbackRangeV1Schema: z.ZodObject<{
    target: z.ZodDiscriminatedUnion<[z.ZodObject<{
        type: z.ZodLiteral<"latest_turn">;
    }, z.core.$strict>, z.ZodObject<{
        type: z.ZodLiteral<"before_user_message">;
        userMessageSeq: z.ZodNumber;
    }, z.core.$strict>], "type">;
    startSeqInclusive: z.ZodNumber;
    endSeqInclusive: z.ZodNumber;
    rolledBackAt: z.ZodNumber;
}, z.core.$loose>;
export type SessionRollbackRangeV1 = z.infer<typeof SessionRollbackRangeV1Schema>;
export declare function createSessionRollbackRangesV1Schema(zod: typeof z): z.ZodObject<{
    v: z.ZodLiteral<1>;
    updatedAt: z.ZodNumber;
    ranges: z.ZodArray<z.ZodObject<{
        target: z.ZodDiscriminatedUnion<[z.ZodObject<{
            type: z.ZodLiteral<"latest_turn">;
        }, z.core.$strict>, z.ZodObject<{
            type: z.ZodLiteral<"before_user_message">;
            userMessageSeq: z.ZodNumber;
        }, z.core.$strict>], "type">;
        startSeqInclusive: z.ZodNumber;
        endSeqInclusive: z.ZodNumber;
        rolledBackAt: z.ZodNumber;
    }, z.core.$loose>>;
}, z.core.$loose>;
export declare const SessionRollbackRangesV1Schema: z.ZodObject<{
    v: z.ZodLiteral<1>;
    updatedAt: z.ZodNumber;
    ranges: z.ZodArray<z.ZodObject<{
        target: z.ZodDiscriminatedUnion<[z.ZodObject<{
            type: z.ZodLiteral<"latest_turn">;
        }, z.core.$strict>, z.ZodObject<{
            type: z.ZodLiteral<"before_user_message">;
            userMessageSeq: z.ZodNumber;
        }, z.core.$strict>], "type">;
        startSeqInclusive: z.ZodNumber;
        endSeqInclusive: z.ZodNumber;
        rolledBackAt: z.ZodNumber;
    }, z.core.$loose>>;
}, z.core.$loose>;
export type SessionRollbackRangesV1 = z.infer<typeof SessionRollbackRangesV1Schema>;
export declare function buildSessionRollbackRangesV1(params: Readonly<{
    updatedAt: number;
    ranges: ReadonlyArray<SessionRollbackRangeV1>;
}>): SessionRollbackRangesV1;
export declare function readSessionRollbackRangesV1FromMetadata(metadata: unknown): SessionRollbackRangesV1 | null;
//# sourceMappingURL=sessionRollbackRangesV1.d.ts.map