/*!
 * Copyright (c) Microsoft Corporation and contributors. All rights reserved.
 * Licensed under the MIT License.
 */
import { type Static } from "@sinclair/typebox";
/**
 * Format for encoding as json.
 *
 * For consistency all lists are sorted and undefined values are omitted.
 *
 * 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).
 * It also makes it simpler to deterministically sort by keys.
 */
export declare const Format: import("@sinclair/typebox").TObject<{
    version: import("@sinclair/typebox").TLiteral<import("../../util/brand.js").Brand<2, "SchemaFormatVersion">>;
    nodes: import("@sinclair/typebox").TRecord<import("@sinclair/typebox").TString, import("@sinclair/typebox").TObject<{
        kind: import("@sinclair/typebox").TObject<{
            object: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TRecord<import("@sinclair/typebox").TString, import("@sinclair/typebox").TObject<{
                kind: import("@sinclair/typebox").TUnsafe<import("../../core/index.js").FieldKindIdentifier>;
                types: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TUnsafe<import("../../core/index.js").TreeNodeSchemaIdentifier<string>>>;
                metadata: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnsafe<import("../../index.js").JsonCompatibleReadOnlyObject>>;
            }>>>;
            map: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
                kind: import("@sinclair/typebox").TUnsafe<import("../../core/index.js").FieldKindIdentifier>;
                types: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TUnsafe<import("../../core/index.js").TreeNodeSchemaIdentifier<string>>>;
                metadata: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnsafe<import("../../index.js").JsonCompatibleReadOnlyObject>>;
            }>>;
            leaf: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TEnum<typeof import("../../core/schema-stored/formatV1.js").PersistedValueSchema>>;
        }>;
        metadata: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnsafe<import("../../index.js").JsonCompatibleReadOnlyObject>>;
    }>>;
    root: import("@sinclair/typebox").TObject<{
        kind: import("@sinclair/typebox").TUnsafe<import("../../core/index.js").FieldKindIdentifier>;
        types: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TUnsafe<import("../../core/index.js").TreeNodeSchemaIdentifier<string>>>;
        metadata: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnsafe<import("../../index.js").JsonCompatibleReadOnlyObject>>;
    }>;
}>;
export type Format = Static<typeof Format>;
//# sourceMappingURL=formatV2.d.ts.map