/*!
 * Copyright (c) Microsoft Corporation and contributors. All rights reserved.
 * Licensed under the MIT License.
 */
import { type Static } from "@sinclair/typebox";
import { type ChangesetLocalId, schemaFormatV1 } from "../../core/index.js";
import { type JsonCompatibleReadOnly } from "../../util/index.js";
export declare const ChangesetLocalIdSchema: import("@sinclair/typebox").TUnsafe<ChangesetLocalId>;
export declare const EncodedChangeAtomId: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TTuple<[import("@sinclair/typebox").TUnsafe<ChangesetLocalId>, import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"root">, import("@sinclair/typebox").TUnsafe<import("../../util/brand.js").Brand<import("@fluidframework/id-compressor").OpSpaceCompressedId, "EncodedRevisionTag">>]>]>, import("@sinclair/typebox").TUnsafe<ChangesetLocalId>]>;
export type EncodedChangeAtomId = Static<typeof EncodedChangeAtomId>;
export declare const EncodedFieldChange: import("@sinclair/typebox").TObject<{
    fieldKey: import("@sinclair/typebox").TUnsafe<schemaFormatV1.FieldKey>;
    fieldKind: import("@sinclair/typebox").TUnsafe<schemaFormatV1.FieldKindIdentifier>;
    change: import("@sinclair/typebox").TUnsafe<JsonCompatibleReadOnly>;
}>;
export interface EncodedFieldChange extends Static<typeof EncodedFieldChange> {
    /**
     * Encoded in format selected by `fieldKind`
     */
    change: JsonCompatibleReadOnly;
}
export declare const EncodedFieldChangeMap: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
    fieldKey: import("@sinclair/typebox").TUnsafe<schemaFormatV1.FieldKey>;
    fieldKind: import("@sinclair/typebox").TUnsafe<schemaFormatV1.FieldKindIdentifier>;
    change: import("@sinclair/typebox").TUnsafe<JsonCompatibleReadOnly>;
}>>;
/**
 * Format for encoding as json.
 *
 * This chooses to use lists of named objects instead of maps:
 * this choice is somewhat arbitrary, but avoids user data being used as object keys,
 * which can sometimes be an issue (for example handling that for "__proto__" can require care).
 */
export type EncodedFieldChangeMap = Static<typeof EncodedFieldChangeMap>;
export declare const EncodedNodeChangeset: import("@sinclair/typebox").TObject<{
    fieldChanges: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
        fieldKey: import("@sinclair/typebox").TUnsafe<schemaFormatV1.FieldKey>;
        fieldKind: import("@sinclair/typebox").TUnsafe<schemaFormatV1.FieldKindIdentifier>;
        change: import("@sinclair/typebox").TUnsafe<JsonCompatibleReadOnly>;
    }>>>;
    nodeExistsConstraint: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
        violated: import("@sinclair/typebox").TBoolean;
    }>>;
}>;
/**
 * Format for encoding as json.
 */
export type EncodedNodeChangeset = Static<typeof EncodedNodeChangeset>;
export declare const EncodedRevisionInfo: import("@sinclair/typebox").TObject<{
    revision: import("@sinclair/typebox").TReadonly<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"root">, import("@sinclair/typebox").TUnsafe<import("../../util/brand.js").Brand<import("@fluidframework/id-compressor").OpSpaceCompressedId, "EncodedRevisionTag">>]>>;
    rollbackOf: import("@sinclair/typebox").TReadonlyOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"root">, import("@sinclair/typebox").TUnsafe<import("../../util/brand.js").Brand<import("@fluidframework/id-compressor").OpSpaceCompressedId, "EncodedRevisionTag">>]>>;
}>;
export type EncodedRevisionInfo = Static<typeof EncodedRevisionInfo>;
/**
 * Index of field in an EncodedFieldBatch.
 */
export declare const EncodedTreeIndex: import("@sinclair/typebox").TNumber;
export declare const CommitBuilds: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TTuple<[import("@sinclair/typebox").TUnsafe<ChangesetLocalId>, import("@sinclair/typebox").TNumber]>>;
export type CommitBuilds = Static<typeof CommitBuilds>;
export declare const EncodedBuildsArray: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TTuple<[import("@sinclair/typebox").TArray<import("@sinclair/typebox").TTuple<[import("@sinclair/typebox").TUnsafe<ChangesetLocalId>, import("@sinclair/typebox").TNumber]>>, import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"root">, import("@sinclair/typebox").TUnsafe<import("../../util/brand.js").Brand<import("@fluidframework/id-compressor").OpSpaceCompressedId, "EncodedRevisionTag">>]>]>, import("@sinclair/typebox").TTuple<[import("@sinclair/typebox").TArray<import("@sinclair/typebox").TTuple<[import("@sinclair/typebox").TUnsafe<ChangesetLocalId>, import("@sinclair/typebox").TNumber]>>]>]>>;
export type EncodedBuildsArray = Static<typeof EncodedBuildsArray>;
export declare const EncodedBuilds: import("@sinclair/typebox").TObject<{
    builds: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TTuple<[import("@sinclair/typebox").TArray<import("@sinclair/typebox").TTuple<[import("@sinclair/typebox").TUnsafe<ChangesetLocalId>, import("@sinclair/typebox").TNumber]>>, import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"root">, import("@sinclair/typebox").TUnsafe<import("../../util/brand.js").Brand<import("@fluidframework/id-compressor").OpSpaceCompressedId, "EncodedRevisionTag">>]>]>, import("@sinclair/typebox").TTuple<[import("@sinclair/typebox").TArray<import("@sinclair/typebox").TTuple<[import("@sinclair/typebox").TUnsafe<ChangesetLocalId>, import("@sinclair/typebox").TNumber]>>]>]>>;
    /**
     * FieldBatch codec encoded data indexed by the EncodedTreeIndexes above.
     */
    trees: import("@sinclair/typebox").TUnsafe<JsonCompatibleReadOnly>;
}>;
export type EncodedBuilds = Static<typeof EncodedBuilds>;
export declare const EncodedModularChangesetV1: import("@sinclair/typebox").TObject<{
    maxId: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnsafe<ChangesetLocalId>>;
    changes: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
        fieldKey: import("@sinclair/typebox").TUnsafe<schemaFormatV1.FieldKey>;
        fieldKind: import("@sinclair/typebox").TUnsafe<schemaFormatV1.FieldKindIdentifier>;
        change: import("@sinclair/typebox").TUnsafe<JsonCompatibleReadOnly>;
    }>>;
    revisions: import("@sinclair/typebox").TReadonlyOptional<import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
        revision: import("@sinclair/typebox").TReadonly<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"root">, import("@sinclair/typebox").TUnsafe<import("../../util/brand.js").Brand<import("@fluidframework/id-compressor").OpSpaceCompressedId, "EncodedRevisionTag">>]>>;
        rollbackOf: import("@sinclair/typebox").TReadonlyOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"root">, import("@sinclair/typebox").TUnsafe<import("../../util/brand.js").Brand<import("@fluidframework/id-compressor").OpSpaceCompressedId, "EncodedRevisionTag">>]>>;
    }>>>;
    builds: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
        builds: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TTuple<[import("@sinclair/typebox").TArray<import("@sinclair/typebox").TTuple<[import("@sinclair/typebox").TUnsafe<ChangesetLocalId>, import("@sinclair/typebox").TNumber]>>, import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"root">, import("@sinclair/typebox").TUnsafe<import("../../util/brand.js").Brand<import("@fluidframework/id-compressor").OpSpaceCompressedId, "EncodedRevisionTag">>]>]>, import("@sinclair/typebox").TTuple<[import("@sinclair/typebox").TArray<import("@sinclair/typebox").TTuple<[import("@sinclair/typebox").TUnsafe<ChangesetLocalId>, import("@sinclair/typebox").TNumber]>>]>]>>;
        /**
         * FieldBatch codec encoded data indexed by the EncodedTreeIndexes above.
         */
        trees: import("@sinclair/typebox").TUnsafe<JsonCompatibleReadOnly>;
    }>>;
    refreshers: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
        builds: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TTuple<[import("@sinclair/typebox").TArray<import("@sinclair/typebox").TTuple<[import("@sinclair/typebox").TUnsafe<ChangesetLocalId>, import("@sinclair/typebox").TNumber]>>, import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"root">, import("@sinclair/typebox").TUnsafe<import("../../util/brand.js").Brand<import("@fluidframework/id-compressor").OpSpaceCompressedId, "EncodedRevisionTag">>]>]>, import("@sinclair/typebox").TTuple<[import("@sinclair/typebox").TArray<import("@sinclair/typebox").TTuple<[import("@sinclair/typebox").TUnsafe<ChangesetLocalId>, import("@sinclair/typebox").TNumber]>>]>]>>;
        /**
         * FieldBatch codec encoded data indexed by the EncodedTreeIndexes above.
         */
        trees: import("@sinclair/typebox").TUnsafe<JsonCompatibleReadOnly>;
    }>>;
    /**
     * The number of constraints within this changeset that are violated.
     */
    violations: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TNumber>;
}>;
export type EncodedModularChangesetV1 = Static<typeof EncodedModularChangesetV1>;
//# sourceMappingURL=modularChangeFormatV1.d.ts.map