/*!
 * Copyright (c) Microsoft Corporation and contributors. All rights reserved.
 * Licensed under the MIT License.
 */
import { type Static } from "@sinclair/typebox";
import { PersistedValueSchema } from "./formatV1.js";
export declare const PersistedMetadataFormat: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TAny>;
export declare const FieldSchemaFormat: import("@sinclair/typebox").TObject<{
    kind: import("@sinclair/typebox").TUnsafe<import("./formatV1.js").FieldKindIdentifier>;
    types: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TUnsafe<import("./formatV1.js").TreeNodeSchemaIdentifier<string>>>;
    metadata: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TAny>;
}>;
/**
 * Format for the content of a {@link TreeNodeStoredSchema}.
 *
 * See {@link DiscriminatedUnionDispatcher} for more information on this pattern.
 */
export declare const TreeNodeSchemaUnionFormat: import("@sinclair/typebox").TObject<{
    /**
     * Object node union member.
     */
    object: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TRecord<import("@sinclair/typebox").TString, import("@sinclair/typebox").TObject<{
        kind: import("@sinclair/typebox").TUnsafe<import("./formatV1.js").FieldKindIdentifier>;
        types: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TUnsafe<import("./formatV1.js").TreeNodeSchemaIdentifier<string>>>;
        metadata: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TAny>;
    }>>>;
    /**
     * Map node union member.
     */
    map: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
        kind: import("@sinclair/typebox").TUnsafe<import("./formatV1.js").FieldKindIdentifier>;
        types: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TUnsafe<import("./formatV1.js").TreeNodeSchemaIdentifier<string>>>;
        metadata: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TAny>;
    }>>;
    /**
     * Leaf node union member.
     */
    leaf: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TEnum<typeof PersistedValueSchema>>;
}>;
export type TreeNodeSchemaUnionFormat = Static<typeof TreeNodeSchemaUnionFormat>;
/**
 * Format for {@link TreeNodeStoredSchema}.
 *
 * See {@link DiscriminatedUnionDispatcher} for more information on this pattern.
 */
export declare const TreeNodeSchemaDataFormat: import("@sinclair/typebox").TObject<{
    /**
     * Node kind specific data.
     */
    kind: import("@sinclair/typebox").TObject<{
        /**
         * Object node union member.
         */
        object: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TRecord<import("@sinclair/typebox").TString, import("@sinclair/typebox").TObject<{
            kind: import("@sinclair/typebox").TUnsafe<import("./formatV1.js").FieldKindIdentifier>;
            types: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TUnsafe<import("./formatV1.js").TreeNodeSchemaIdentifier<string>>>;
            metadata: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TAny>;
        }>>>;
        /**
         * Map node union member.
         */
        map: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
            kind: import("@sinclair/typebox").TUnsafe<import("./formatV1.js").FieldKindIdentifier>;
            types: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TUnsafe<import("./formatV1.js").TreeNodeSchemaIdentifier<string>>>;
            metadata: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TAny>;
        }>>;
        /**
         * Leaf node union member.
         */
        leaf: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TEnum<typeof PersistedValueSchema>>;
    }>;
    /**
     * Leaf node union member.
     */
    metadata: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TAny>;
}>;
export type TreeNodeSchemaDataFormat = Static<typeof TreeNodeSchemaDataFormat>;
export type FieldSchemaFormat = Static<typeof FieldSchemaFormat>;
export type PersistedMetadataFormat = Static<typeof PersistedMetadataFormat>;
//# sourceMappingURL=formatV2.d.ts.map