import { z } from 'zod';
import { Cid, LexMap } from '@atproto/lex-data';
import { NsidString, RecordKeyString } from '@atproto/syntax';
import { BlockMap } from './block-map.js';
import { CidSet } from './cid-set.js';
declare const _unsignedCommit: z.ZodObject<{
    did: z.ZodString;
    version: z.ZodLiteral<3>;
    data: z.ZodEffects<z.ZodUnknown, Cid<0 | 1, number, number>, unknown>;
    rev: z.ZodString;
    prev: z.ZodNullable<z.ZodEffects<z.ZodUnknown, Cid<0 | 1, number, number>, unknown>>;
}, "strip", z.ZodTypeAny, {
    did: string;
    version: 3;
    data: Cid<0 | 1, number, number>;
    rev: string;
    prev: Cid<0 | 1, number, number> | null;
}, {
    did: string;
    version: 3;
    rev: string;
    data?: unknown;
    prev?: unknown;
}>;
export type UnsignedCommit = z.infer<typeof _unsignedCommit> & {
    sig?: never;
};
declare const commit: z.ZodObject<{
    did: z.ZodString;
    version: z.ZodLiteral<3>;
    data: z.ZodEffects<z.ZodUnknown, Cid<0 | 1, number, number>, unknown>;
    rev: z.ZodString;
    prev: z.ZodNullable<z.ZodEffects<z.ZodUnknown, Cid<0 | 1, number, number>, unknown>>;
    sig: z.ZodType<Uint8Array<ArrayBufferLike>, z.ZodTypeDef, Uint8Array<ArrayBufferLike>>;
}, "strip", z.ZodTypeAny, {
    did: string;
    version: 3;
    data: Cid<0 | 1, number, number>;
    rev: string;
    prev: Cid<0 | 1, number, number> | null;
    sig: Uint8Array<ArrayBufferLike>;
}, {
    did: string;
    version: 3;
    rev: string;
    sig: Uint8Array<ArrayBufferLike>;
    data?: unknown;
    prev?: unknown;
}>;
export type Commit = z.infer<typeof commit>;
declare const legacyV2Commit: z.ZodObject<{
    did: z.ZodString;
    version: z.ZodLiteral<2>;
    data: z.ZodEffects<z.ZodUnknown, Cid<0 | 1, number, number>, unknown>;
    rev: z.ZodOptional<z.ZodString>;
    prev: z.ZodNullable<z.ZodEffects<z.ZodUnknown, Cid<0 | 1, number, number>, unknown>>;
    sig: z.ZodType<Uint8Array<ArrayBufferLike>, z.ZodTypeDef, Uint8Array<ArrayBufferLike>>;
}, "strip", z.ZodTypeAny, {
    did: string;
    version: 2;
    data: Cid<0 | 1, number, number>;
    prev: Cid<0 | 1, number, number> | null;
    sig: Uint8Array<ArrayBufferLike>;
    rev?: string | undefined;
}, {
    did: string;
    version: 2;
    sig: Uint8Array<ArrayBufferLike>;
    data?: unknown;
    rev?: string | undefined;
    prev?: unknown;
}>;
export type LegacyV2Commit = z.infer<typeof legacyV2Commit>;
declare const versionedCommit: z.ZodDiscriminatedUnion<"version", [z.ZodObject<{
    did: z.ZodString;
    version: z.ZodLiteral<3>;
    data: z.ZodEffects<z.ZodUnknown, Cid<0 | 1, number, number>, unknown>;
    rev: z.ZodString;
    prev: z.ZodNullable<z.ZodEffects<z.ZodUnknown, Cid<0 | 1, number, number>, unknown>>;
    sig: z.ZodType<Uint8Array<ArrayBufferLike>, z.ZodTypeDef, Uint8Array<ArrayBufferLike>>;
}, "strip", z.ZodTypeAny, {
    did: string;
    version: 3;
    data: Cid<0 | 1, number, number>;
    rev: string;
    prev: Cid<0 | 1, number, number> | null;
    sig: Uint8Array<ArrayBufferLike>;
}, {
    did: string;
    version: 3;
    rev: string;
    sig: Uint8Array<ArrayBufferLike>;
    data?: unknown;
    prev?: unknown;
}>, z.ZodObject<{
    did: z.ZodString;
    version: z.ZodLiteral<2>;
    data: z.ZodEffects<z.ZodUnknown, Cid<0 | 1, number, number>, unknown>;
    rev: z.ZodOptional<z.ZodString>;
    prev: z.ZodNullable<z.ZodEffects<z.ZodUnknown, Cid<0 | 1, number, number>, unknown>>;
    sig: z.ZodType<Uint8Array<ArrayBufferLike>, z.ZodTypeDef, Uint8Array<ArrayBufferLike>>;
}, "strip", z.ZodTypeAny, {
    did: string;
    version: 2;
    data: Cid<0 | 1, number, number>;
    prev: Cid<0 | 1, number, number> | null;
    sig: Uint8Array<ArrayBufferLike>;
    rev?: string | undefined;
}, {
    did: string;
    version: 2;
    sig: Uint8Array<ArrayBufferLike>;
    data?: unknown;
    rev?: string | undefined;
    prev?: unknown;
}>]>;
export type VersionedCommit = z.infer<typeof versionedCommit>;
export declare const schema: {
    cid: z.ZodEffects<z.ZodUnknown, Cid<0 | 1, number, number>, unknown>;
    carHeader: z.ZodObject<{
        version: z.ZodLiteral<1>;
        roots: z.ZodArray<z.ZodEffects<z.ZodUnknown, Cid<0 | 1, number, number>, unknown>, "many">;
    }, "strip", z.ZodTypeAny, {
        version: 1;
        roots: Cid<0 | 1, number, number>[];
    }, {
        version: 1;
        roots: unknown[];
    }>;
    bytes: z.ZodType<Uint8Array<ArrayBufferLike>, z.ZodTypeDef, Uint8Array<ArrayBufferLike>>;
    string: z.ZodString;
    array: z.ZodArray<z.ZodUnknown, "many">;
    map: z.ZodRecord<z.ZodString, z.ZodUnknown>;
    unknown: z.ZodUnknown;
    commit: z.ZodObject<{
        did: z.ZodString;
        version: z.ZodLiteral<3>;
        data: z.ZodEffects<z.ZodUnknown, Cid<0 | 1, number, number>, unknown>;
        rev: z.ZodString;
        prev: z.ZodNullable<z.ZodEffects<z.ZodUnknown, Cid<0 | 1, number, number>, unknown>>;
        sig: z.ZodType<Uint8Array<ArrayBufferLike>, z.ZodTypeDef, Uint8Array<ArrayBufferLike>>;
    }, "strip", z.ZodTypeAny, {
        did: string;
        version: 3;
        data: Cid<0 | 1, number, number>;
        rev: string;
        prev: Cid<0 | 1, number, number> | null;
        sig: Uint8Array<ArrayBufferLike>;
    }, {
        did: string;
        version: 3;
        rev: string;
        sig: Uint8Array<ArrayBufferLike>;
        data?: unknown;
        prev?: unknown;
    }>;
    legacyV2Commit: z.ZodObject<{
        did: z.ZodString;
        version: z.ZodLiteral<2>;
        data: z.ZodEffects<z.ZodUnknown, Cid<0 | 1, number, number>, unknown>;
        rev: z.ZodOptional<z.ZodString>;
        prev: z.ZodNullable<z.ZodEffects<z.ZodUnknown, Cid<0 | 1, number, number>, unknown>>;
        sig: z.ZodType<Uint8Array<ArrayBufferLike>, z.ZodTypeDef, Uint8Array<ArrayBufferLike>>;
    }, "strip", z.ZodTypeAny, {
        did: string;
        version: 2;
        data: Cid<0 | 1, number, number>;
        prev: Cid<0 | 1, number, number> | null;
        sig: Uint8Array<ArrayBufferLike>;
        rev?: string | undefined;
    }, {
        did: string;
        version: 2;
        sig: Uint8Array<ArrayBufferLike>;
        data?: unknown;
        rev?: string | undefined;
        prev?: unknown;
    }>;
    versionedCommit: z.ZodDiscriminatedUnion<"version", [z.ZodObject<{
        did: z.ZodString;
        version: z.ZodLiteral<3>;
        data: z.ZodEffects<z.ZodUnknown, Cid<0 | 1, number, number>, unknown>;
        rev: z.ZodString;
        prev: z.ZodNullable<z.ZodEffects<z.ZodUnknown, Cid<0 | 1, number, number>, unknown>>;
        sig: z.ZodType<Uint8Array<ArrayBufferLike>, z.ZodTypeDef, Uint8Array<ArrayBufferLike>>;
    }, "strip", z.ZodTypeAny, {
        did: string;
        version: 3;
        data: Cid<0 | 1, number, number>;
        rev: string;
        prev: Cid<0 | 1, number, number> | null;
        sig: Uint8Array<ArrayBufferLike>;
    }, {
        did: string;
        version: 3;
        rev: string;
        sig: Uint8Array<ArrayBufferLike>;
        data?: unknown;
        prev?: unknown;
    }>, z.ZodObject<{
        did: z.ZodString;
        version: z.ZodLiteral<2>;
        data: z.ZodEffects<z.ZodUnknown, Cid<0 | 1, number, number>, unknown>;
        rev: z.ZodOptional<z.ZodString>;
        prev: z.ZodNullable<z.ZodEffects<z.ZodUnknown, Cid<0 | 1, number, number>, unknown>>;
        sig: z.ZodType<Uint8Array<ArrayBufferLike>, z.ZodTypeDef, Uint8Array<ArrayBufferLike>>;
    }, "strip", z.ZodTypeAny, {
        did: string;
        version: 2;
        data: Cid<0 | 1, number, number>;
        prev: Cid<0 | 1, number, number> | null;
        sig: Uint8Array<ArrayBufferLike>;
        rev?: string | undefined;
    }, {
        did: string;
        version: 2;
        sig: Uint8Array<ArrayBufferLike>;
        data?: unknown;
        rev?: string | undefined;
        prev?: unknown;
    }>]>;
};
export declare const def: {
    cid: {
        name: string;
        schema: z.ZodEffects<z.ZodUnknown, Cid<0 | 1, number, number>, unknown>;
    };
    carHeader: {
        name: string;
        schema: z.ZodObject<{
            version: z.ZodLiteral<1>;
            roots: z.ZodArray<z.ZodEffects<z.ZodUnknown, Cid<0 | 1, number, number>, unknown>, "many">;
        }, "strip", z.ZodTypeAny, {
            version: 1;
            roots: Cid<0 | 1, number, number>[];
        }, {
            version: 1;
            roots: unknown[];
        }>;
    };
    bytes: {
        name: string;
        schema: z.ZodType<Uint8Array<ArrayBufferLike>, z.ZodTypeDef, Uint8Array<ArrayBufferLike>>;
    };
    string: {
        name: string;
        schema: z.ZodString;
    };
    map: {
        name: string;
        schema: z.ZodRecord<z.ZodString, z.ZodUnknown>;
    };
    unknown: {
        name: string;
        schema: z.ZodUnknown;
    };
    commit: {
        name: string;
        schema: z.ZodObject<{
            did: z.ZodString;
            version: z.ZodLiteral<3>;
            data: z.ZodEffects<z.ZodUnknown, Cid<0 | 1, number, number>, unknown>;
            rev: z.ZodString;
            prev: z.ZodNullable<z.ZodEffects<z.ZodUnknown, Cid<0 | 1, number, number>, unknown>>;
            sig: z.ZodType<Uint8Array<ArrayBufferLike>, z.ZodTypeDef, Uint8Array<ArrayBufferLike>>;
        }, "strip", z.ZodTypeAny, {
            did: string;
            version: 3;
            data: Cid<0 | 1, number, number>;
            rev: string;
            prev: Cid<0 | 1, number, number> | null;
            sig: Uint8Array<ArrayBufferLike>;
        }, {
            did: string;
            version: 3;
            rev: string;
            sig: Uint8Array<ArrayBufferLike>;
            data?: unknown;
            prev?: unknown;
        }>;
    };
    versionedCommit: {
        name: string;
        schema: z.ZodDiscriminatedUnion<"version", [z.ZodObject<{
            did: z.ZodString;
            version: z.ZodLiteral<3>;
            data: z.ZodEffects<z.ZodUnknown, Cid<0 | 1, number, number>, unknown>;
            rev: z.ZodString;
            prev: z.ZodNullable<z.ZodEffects<z.ZodUnknown, Cid<0 | 1, number, number>, unknown>>;
            sig: z.ZodType<Uint8Array<ArrayBufferLike>, z.ZodTypeDef, Uint8Array<ArrayBufferLike>>;
        }, "strip", z.ZodTypeAny, {
            did: string;
            version: 3;
            data: Cid<0 | 1, number, number>;
            rev: string;
            prev: Cid<0 | 1, number, number> | null;
            sig: Uint8Array<ArrayBufferLike>;
        }, {
            did: string;
            version: 3;
            rev: string;
            sig: Uint8Array<ArrayBufferLike>;
            data?: unknown;
            prev?: unknown;
        }>, z.ZodObject<{
            did: z.ZodString;
            version: z.ZodLiteral<2>;
            data: z.ZodEffects<z.ZodUnknown, Cid<0 | 1, number, number>, unknown>;
            rev: z.ZodOptional<z.ZodString>;
            prev: z.ZodNullable<z.ZodEffects<z.ZodUnknown, Cid<0 | 1, number, number>, unknown>>;
            sig: z.ZodType<Uint8Array<ArrayBufferLike>, z.ZodTypeDef, Uint8Array<ArrayBufferLike>>;
        }, "strip", z.ZodTypeAny, {
            did: string;
            version: 2;
            data: Cid<0 | 1, number, number>;
            prev: Cid<0 | 1, number, number> | null;
            sig: Uint8Array<ArrayBufferLike>;
            rev?: string | undefined;
        }, {
            did: string;
            version: 2;
            sig: Uint8Array<ArrayBufferLike>;
            data?: unknown;
            rev?: string | undefined;
            prev?: unknown;
        }>]>;
    };
};
export declare enum WriteOpAction {
    Create = "create",
    Update = "update",
    Delete = "delete"
}
export type RecordCreateOp = {
    action: WriteOpAction.Create;
    collection: NsidString;
    rkey: RecordKeyString;
    record: LexMap;
};
export type RecordUpdateOp = {
    action: WriteOpAction.Update;
    collection: NsidString;
    rkey: RecordKeyString;
    record: LexMap;
};
export type RecordDeleteOp = {
    action: WriteOpAction.Delete;
    collection: NsidString;
    rkey: RecordKeyString;
};
export type RecordWriteOp = RecordCreateOp | RecordUpdateOp | RecordDeleteOp;
export type RecordCreateDescript = {
    action: WriteOpAction.Create;
    collection: NsidString;
    rkey: RecordKeyString;
    cid: Cid;
};
export type RecordUpdateDescript = {
    action: WriteOpAction.Update;
    collection: NsidString;
    rkey: RecordKeyString;
    prev: Cid;
    cid: Cid;
};
export type RecordDeleteDescript = {
    action: WriteOpAction.Delete;
    collection: NsidString;
    rkey: RecordKeyString;
    cid: Cid;
};
export type RecordWriteDescript = RecordCreateDescript | RecordUpdateDescript | RecordDeleteDescript;
export type WriteLog = RecordWriteDescript[][];
export type CommitData = {
    cid: Cid;
    rev: string;
    since: string | null;
    prev: Cid | null;
    newBlocks: BlockMap;
    relevantBlocks: BlockMap;
    removedCids: CidSet;
};
export type RepoUpdate = CommitData & {
    ops: RecordWriteOp[];
};
export type CollectionContents = Record<string, LexMap>;
export type RepoContents = Record<NsidString, CollectionContents>;
export type RepoRecordWithCid = {
    cid: Cid;
    value: LexMap;
};
export type CollectionContentsWithCids = Record<string, RepoRecordWithCid>;
export type RepoContentsWithCids = Record<string, CollectionContentsWithCids>;
export type DatastoreContents = Record<string, Cid>;
export type RecordPath = {
    collection: string;
    rkey: string;
};
export type RecordCidClaim = {
    collection: string;
    rkey: string;
    cid: Cid | null;
};
export type RecordClaim = {
    collection: string;
    rkey: string;
    record: LexMap | null;
};
export type VerifiedDiff = {
    writes: RecordWriteDescript[];
    commit: CommitData;
};
export type VerifiedRepo = {
    creates: RecordCreateDescript[];
    commit: CommitData;
};
export type CarBlock = {
    cid: Cid;
    bytes: Uint8Array;
};
export {};
//# sourceMappingURL=types.d.ts.map