/*!
 * Copyright (c) Microsoft Corporation and contributors. All rights reserved.
 * Licensed under the MIT License.
 */
import { type Static } from "@sinclair/typebox";
/**
 * The format version for the schema.
 */
export declare const SimpleSchemaFormatVersion: {
    readonly v1: 1;
};
/**
 * The allowed types and their attributes in the simple schema format.
 * @see {@link SimpleAllowedTypes}.
 */
export declare const SimpleAllowedTypeAttributesFormat: import("@sinclair/typebox").TObject<{
    isStaged: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TBoolean>;
}>;
export type SimpleAllowedTypeAttributesFormat = Static<typeof SimpleAllowedTypeAttributesFormat>;
/**
 * A set of allowed types in the simple schema format.
 * The keys are the type identifiers, and the values are their attributes.
 */
export declare const SimpleAllowedTypesFormat: import("@sinclair/typebox").TRecord<import("@sinclair/typebox").TString, import("@sinclair/typebox").TObject<{
    isStaged: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TBoolean>;
}>>;
export type SimpleAllowedTypesFormat = Static<typeof SimpleAllowedTypesFormat>;
/**
 * Persisted format for a field schema in the simple schema format.
 * @see {@link SimpleFieldSchema}.
 */
export declare const SimpleFieldSchemaFormat: import("@sinclair/typebox").TObject<{
    kind: import("@sinclair/typebox").TInteger;
    simpleAllowedTypes: import("@sinclair/typebox").TRecord<import("@sinclair/typebox").TString, import("@sinclair/typebox").TObject<{
        isStaged: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TBoolean>;
    }>>;
}>;
export type SimpleFieldSchemaFormat = Static<typeof SimpleFieldSchemaFormat>;
/**
 * Persisted format for an object field schema in the simple schema format.
 * @see {@link SimpleObjectFieldSchema}.
 */
export declare const SimpleObjectFieldSchemaFormat: import("@sinclair/typebox").TObject<{
    kind: import("@sinclair/typebox").TInteger;
    simpleAllowedTypes: import("@sinclair/typebox").TRecord<import("@sinclair/typebox").TString, import("@sinclair/typebox").TObject<{
        isStaged: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TBoolean>;
    }>>;
    storedKey: import("@sinclair/typebox").TString;
}>;
export type SimpleObjectFieldSchemaFormat = Static<typeof SimpleObjectFieldSchemaFormat>;
/**
 * Persisted format for an array node schema in the simple schema format.
 * @see {@link SimpleArrayNodeSchema}.
 */
export declare const SimpleArrayNodeSchemaFormat: import("@sinclair/typebox").TObject<{
    kind: import("@sinclair/typebox").TInteger;
    simpleAllowedTypes: import("@sinclair/typebox").TRecord<import("@sinclair/typebox").TString, import("@sinclair/typebox").TObject<{
        isStaged: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TBoolean>;
    }>>;
}>;
export type SimpleArrayNodeSchemaFormat = Static<typeof SimpleArrayNodeSchemaFormat>;
/**
 * Persisted format for a map node schema in the simple schema format.
 * @see {@link SimpleMapNodeSchema}.
 */
export declare const SimpleMapNodeSchemaFormat: import("@sinclair/typebox").TObject<{
    kind: import("@sinclair/typebox").TInteger;
    simpleAllowedTypes: import("@sinclair/typebox").TRecord<import("@sinclair/typebox").TString, import("@sinclair/typebox").TObject<{
        isStaged: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TBoolean>;
    }>>;
}>;
export type SimpleMapNodeSchemaFormat = Static<typeof SimpleMapNodeSchemaFormat>;
/**
 * Persisted format for a record node schema in the simple schema format.
 * @see {@link SimpleRecordNodeSchema}.
 */
export declare const SimpleRecordNodeSchemaFormat: import("@sinclair/typebox").TObject<{
    kind: import("@sinclair/typebox").TInteger;
    simpleAllowedTypes: import("@sinclair/typebox").TRecord<import("@sinclair/typebox").TString, import("@sinclair/typebox").TObject<{
        isStaged: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TBoolean>;
    }>>;
}>;
export type SimpleRecordNodeSchemaFormat = Static<typeof SimpleRecordNodeSchemaFormat>;
/**
 * Persisted format for a leaf node schema in the simple schema format.
 * @see {@link SimpleLeafNodeSchema}.
 */
export declare const SimpleLeafNodeSchemaFormat: import("@sinclair/typebox").TObject<{
    kind: import("@sinclair/typebox").TInteger;
    leafKind: import("@sinclair/typebox").TInteger;
}>;
export type SimpleLeafNodeSchemaFormat = Static<typeof SimpleLeafNodeSchemaFormat>;
/**
 * Persisted format for the field schemas of an object node in the simple schema format.
 */
export declare const SimpleObjectFieldSchemasFormat: import("@sinclair/typebox").TRecord<import("@sinclair/typebox").TString, import("@sinclair/typebox").TObject<{
    kind: import("@sinclair/typebox").TInteger;
    simpleAllowedTypes: import("@sinclair/typebox").TRecord<import("@sinclair/typebox").TString, import("@sinclair/typebox").TObject<{
        isStaged: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TBoolean>;
    }>>;
    storedKey: import("@sinclair/typebox").TString;
}>>;
export type SimpleObjectFieldSchemasFormat = Static<typeof SimpleObjectFieldSchemasFormat>;
/**
 * Persisted format for an object node schema in the simple schema format.
 * @see {@link SimpleObjectNodeSchema}.
 */
export declare const SimpleObjectNodeSchemaFormat: import("@sinclair/typebox").TObject<{
    kind: import("@sinclair/typebox").TInteger;
    fields: import("@sinclair/typebox").TRecord<import("@sinclair/typebox").TString, import("@sinclair/typebox").TObject<{
        kind: import("@sinclair/typebox").TInteger;
        simpleAllowedTypes: import("@sinclair/typebox").TRecord<import("@sinclair/typebox").TString, import("@sinclair/typebox").TObject<{
            isStaged: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TBoolean>;
        }>>;
        storedKey: import("@sinclair/typebox").TString;
    }>>;
    allowUnknownOptionalFields: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TBoolean>;
}>;
export type SimpleObjectNodeSchemaFormat = Static<typeof SimpleObjectNodeSchemaFormat>;
/**
 * Discriminated union of all possible node schemas.
 *
 * See {@link DiscriminatedUnionDispatcher} for more information on this pattern.
 */
export declare const SimpleNodeSchemaUnionFormat: import("@sinclair/typebox").TObject<{
    array: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
        kind: import("@sinclair/typebox").TInteger;
        simpleAllowedTypes: import("@sinclair/typebox").TRecord<import("@sinclair/typebox").TString, import("@sinclair/typebox").TObject<{
            isStaged: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TBoolean>;
        }>>;
    }>>;
    map: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
        kind: import("@sinclair/typebox").TInteger;
        simpleAllowedTypes: import("@sinclair/typebox").TRecord<import("@sinclair/typebox").TString, import("@sinclair/typebox").TObject<{
            isStaged: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TBoolean>;
        }>>;
    }>>;
    record: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
        kind: import("@sinclair/typebox").TInteger;
        simpleAllowedTypes: import("@sinclair/typebox").TRecord<import("@sinclair/typebox").TString, import("@sinclair/typebox").TObject<{
            isStaged: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TBoolean>;
        }>>;
    }>>;
    leaf: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
        kind: import("@sinclair/typebox").TInteger;
        leafKind: import("@sinclair/typebox").TInteger;
    }>>;
    object: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
        kind: import("@sinclair/typebox").TInteger;
        fields: import("@sinclair/typebox").TRecord<import("@sinclair/typebox").TString, import("@sinclair/typebox").TObject<{
            kind: import("@sinclair/typebox").TInteger;
            simpleAllowedTypes: import("@sinclair/typebox").TRecord<import("@sinclair/typebox").TString, import("@sinclair/typebox").TObject<{
                isStaged: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TBoolean>;
            }>>;
            storedKey: import("@sinclair/typebox").TString;
        }>>;
        allowUnknownOptionalFields: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TBoolean>;
    }>>;
}>;
export type SimpleNodeSchemaUnionFormat = Static<typeof SimpleNodeSchemaUnionFormat>;
/**
 * Helper type for the schema definitions map in the persisted format.
 */
export declare const SimpleSchemaDefinitionsFormat: import("@sinclair/typebox").TRecord<import("@sinclair/typebox").TString, import("@sinclair/typebox").TObject<{
    array: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
        kind: import("@sinclair/typebox").TInteger;
        simpleAllowedTypes: import("@sinclair/typebox").TRecord<import("@sinclair/typebox").TString, import("@sinclair/typebox").TObject<{
            isStaged: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TBoolean>;
        }>>;
    }>>;
    map: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
        kind: import("@sinclair/typebox").TInteger;
        simpleAllowedTypes: import("@sinclair/typebox").TRecord<import("@sinclair/typebox").TString, import("@sinclair/typebox").TObject<{
            isStaged: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TBoolean>;
        }>>;
    }>>;
    record: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
        kind: import("@sinclair/typebox").TInteger;
        simpleAllowedTypes: import("@sinclair/typebox").TRecord<import("@sinclair/typebox").TString, import("@sinclair/typebox").TObject<{
            isStaged: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TBoolean>;
        }>>;
    }>>;
    leaf: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
        kind: import("@sinclair/typebox").TInteger;
        leafKind: import("@sinclair/typebox").TInteger;
    }>>;
    object: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
        kind: import("@sinclair/typebox").TInteger;
        fields: import("@sinclair/typebox").TRecord<import("@sinclair/typebox").TString, import("@sinclair/typebox").TObject<{
            kind: import("@sinclair/typebox").TInteger;
            simpleAllowedTypes: import("@sinclair/typebox").TRecord<import("@sinclair/typebox").TString, import("@sinclair/typebox").TObject<{
                isStaged: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TBoolean>;
            }>>;
            storedKey: import("@sinclair/typebox").TString;
        }>>;
        allowUnknownOptionalFields: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TBoolean>;
    }>>;
}>>;
export type SimpleSchemaDefinitionsFormat = Static<typeof SimpleSchemaDefinitionsFormat>;
/**
 * Persisted format for the compatibility impacting subset of simple schema.
 * @see {@link SimpleTreeSchema}.
 */
export declare const SimpleTreeSchemaFormat: import("@sinclair/typebox").TObject<{
    version: import("@sinclair/typebox").TLiteral<1>;
    root: import("@sinclair/typebox").TObject<{
        kind: import("@sinclair/typebox").TInteger;
        simpleAllowedTypes: import("@sinclair/typebox").TRecord<import("@sinclair/typebox").TString, import("@sinclair/typebox").TObject<{
            isStaged: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TBoolean>;
        }>>;
    }>;
    definitions: import("@sinclair/typebox").TRecord<import("@sinclair/typebox").TString, import("@sinclair/typebox").TObject<{
        array: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
            kind: import("@sinclair/typebox").TInteger;
            simpleAllowedTypes: import("@sinclair/typebox").TRecord<import("@sinclair/typebox").TString, import("@sinclair/typebox").TObject<{
                isStaged: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TBoolean>;
            }>>;
        }>>;
        map: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
            kind: import("@sinclair/typebox").TInteger;
            simpleAllowedTypes: import("@sinclair/typebox").TRecord<import("@sinclair/typebox").TString, import("@sinclair/typebox").TObject<{
                isStaged: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TBoolean>;
            }>>;
        }>>;
        record: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
            kind: import("@sinclair/typebox").TInteger;
            simpleAllowedTypes: import("@sinclair/typebox").TRecord<import("@sinclair/typebox").TString, import("@sinclair/typebox").TObject<{
                isStaged: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TBoolean>;
            }>>;
        }>>;
        leaf: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
            kind: import("@sinclair/typebox").TInteger;
            leafKind: import("@sinclair/typebox").TInteger;
        }>>;
        object: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
            kind: import("@sinclair/typebox").TInteger;
            fields: import("@sinclair/typebox").TRecord<import("@sinclair/typebox").TString, import("@sinclair/typebox").TObject<{
                kind: import("@sinclair/typebox").TInteger;
                simpleAllowedTypes: import("@sinclair/typebox").TRecord<import("@sinclair/typebox").TString, import("@sinclair/typebox").TObject<{
                    isStaged: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TBoolean>;
                }>>;
                storedKey: import("@sinclair/typebox").TString;
            }>>;
            allowUnknownOptionalFields: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TBoolean>;
        }>>;
    }>>;
}>;
export type SimpleTreeSchemaFormat = Static<typeof SimpleTreeSchemaFormat>;
//# sourceMappingURL=simpleSchemaFormatV1.d.ts.map