import type { GenFile, GenMessage } from "@bufbuild/protobuf/codegenv2";
import type { StructJson } from "@bufbuild/protobuf/wkt";
import type { JsonObject, Message } from "@bufbuild/protobuf";
/**
 * Describes the file mochabugapis/adapt/graph/jtd_schema.proto.
 */
export declare const file_mochabugapis_adapt_graph_jtd_schema: GenFile;
/**
 * Schema represents a JSON Typedef Schema.
 *
 * @generated from message mochabugapis.adapt.graph.JTDSchema
 */
export type JTDSchema = Message<"mochabugapis.adapt.graph.JTDSchema"> & {
    /**
     * The definitions keyword MUST be an object where each value is a schema.
     * This object defines a collection of schema definitions that can be referenced via the ref keyword.
     *
     * @generated from field: map<string, mochabugapis.adapt.graph.JTDSchema> definitions = 1;
     */
    definitions: {
        [key: string]: JTDSchema;
    };
    /**
     * The metadata keyword MUST be an object.
     * This object is ignored during validation and can store custom information about the schema.
     *
     * @generated from field: optional google.protobuf.Struct metadata = 2;
     */
    metadata?: JsonObject;
    /**
     * The nullable keyword MUST be a boolean.
     * If true, the schema matches the value null as well as any value matched by the rest of the schema.
     *
     * @generated from field: optional bool nullable = 3;
     */
    nullable?: boolean;
    /**
     * The ref keyword MUST be a string.
     * It is a reference to a schema defined in the definitions object.
     *
     * @generated from field: optional string ref = 4;
     */
    ref?: string;
    /**
     * The type keyword MUST be one of the predefined strings specifying the type of the value.
     * Valid values are: "boolean", "float32", "float64", "int8", "uint8", "int16", "uint16", "int32", "uint32", "string", "timestamp".
     *
     * @generated from field: optional string type = 5;
     */
    type?: string;
    /**
     * The enum keyword MUST be a non-empty array of strings.
     * The schema matches any value that is equal to one of the elements in the array.
     *
     * @generated from field: repeated string enum = 6;
     */
    enum: string[];
    /**
     * The elements keyword MUST be a schema.
     * It is used to validate elements in an array.
     *
     * @generated from field: optional mochabugapis.adapt.graph.JTDSchema elements = 7;
     */
    elements?: JTDSchema;
    /**
     * The properties keyword MUST be an object where each value is a schema.
     * Each key is a required property that must match the corresponding schema.
     *
     * @generated from field: map<string, mochabugapis.adapt.graph.JTDSchema> properties = 8;
     */
    properties: {
        [key: string]: JTDSchema;
    };
    /**
     * The optional_properties keyword MUST be an object where each value is a schema.
     * Each key is an optional property that, if present, must match the corresponding schema.
     *
     * @generated from field: map<string, mochabugapis.adapt.graph.JTDSchema> optional_properties = 9;
     */
    optionalProperties: {
        [key: string]: JTDSchema;
    };
    /**
     * The additional_properties keyword MUST be a boolean.
     * If true, the object may have properties other than those specified in properties and optionalProperties.
     *
     * @generated from field: optional bool additional_properties = 10;
     */
    additionalProperties?: boolean;
    /**
     * The values keyword MUST be a schema.
     * It is used to validate the values in an object.
     *
     * @generated from field: optional mochabugapis.adapt.graph.JTDSchema values = 11;
     */
    values?: JTDSchema;
    /**
     * The discriminator keyword MUST be a string.
     * It is used with mapping to represent tagged unions.
     *
     * @generated from field: optional string discriminator = 12;
     */
    discriminator?: string;
    /**
     * The mapping keyword MUST be an object where each value is a schema.
     * Used with discriminator for tagged unions, mapping discriminator values to schemas.
     *
     * @generated from field: map<string, mochabugapis.adapt.graph.JTDSchema> mapping = 13;
     */
    mapping: {
        [key: string]: JTDSchema;
    };
};
/**
 * Schema represents a JSON Typedef Schema.
 *
 * @generated from message mochabugapis.adapt.graph.JTDSchema
 */
export type JTDSchemaJson = {
    /**
     * The definitions keyword MUST be an object where each value is a schema.
     * This object defines a collection of schema definitions that can be referenced via the ref keyword.
     *
     * @generated from field: map<string, mochabugapis.adapt.graph.JTDSchema> definitions = 1;
     */
    definitions?: {
        [key: string]: JTDSchemaJson;
    };
    /**
     * The metadata keyword MUST be an object.
     * This object is ignored during validation and can store custom information about the schema.
     *
     * @generated from field: optional google.protobuf.Struct metadata = 2;
     */
    metadata?: StructJson;
    /**
     * The nullable keyword MUST be a boolean.
     * If true, the schema matches the value null as well as any value matched by the rest of the schema.
     *
     * @generated from field: optional bool nullable = 3;
     */
    nullable?: boolean;
    /**
     * The ref keyword MUST be a string.
     * It is a reference to a schema defined in the definitions object.
     *
     * @generated from field: optional string ref = 4;
     */
    ref?: string;
    /**
     * The type keyword MUST be one of the predefined strings specifying the type of the value.
     * Valid values are: "boolean", "float32", "float64", "int8", "uint8", "int16", "uint16", "int32", "uint32", "string", "timestamp".
     *
     * @generated from field: optional string type = 5;
     */
    type?: string;
    /**
     * The enum keyword MUST be a non-empty array of strings.
     * The schema matches any value that is equal to one of the elements in the array.
     *
     * @generated from field: repeated string enum = 6;
     */
    enum?: string[];
    /**
     * The elements keyword MUST be a schema.
     * It is used to validate elements in an array.
     *
     * @generated from field: optional mochabugapis.adapt.graph.JTDSchema elements = 7;
     */
    elements?: JTDSchemaJson;
    /**
     * The properties keyword MUST be an object where each value is a schema.
     * Each key is a required property that must match the corresponding schema.
     *
     * @generated from field: map<string, mochabugapis.adapt.graph.JTDSchema> properties = 8;
     */
    properties?: {
        [key: string]: JTDSchemaJson;
    };
    /**
     * The optional_properties keyword MUST be an object where each value is a schema.
     * Each key is an optional property that, if present, must match the corresponding schema.
     *
     * @generated from field: map<string, mochabugapis.adapt.graph.JTDSchema> optional_properties = 9;
     */
    optionalProperties?: {
        [key: string]: JTDSchemaJson;
    };
    /**
     * The additional_properties keyword MUST be a boolean.
     * If true, the object may have properties other than those specified in properties and optionalProperties.
     *
     * @generated from field: optional bool additional_properties = 10;
     */
    additionalProperties?: boolean;
    /**
     * The values keyword MUST be a schema.
     * It is used to validate the values in an object.
     *
     * @generated from field: optional mochabugapis.adapt.graph.JTDSchema values = 11;
     */
    values?: JTDSchemaJson;
    /**
     * The discriminator keyword MUST be a string.
     * It is used with mapping to represent tagged unions.
     *
     * @generated from field: optional string discriminator = 12;
     */
    discriminator?: string;
    /**
     * The mapping keyword MUST be an object where each value is a schema.
     * Used with discriminator for tagged unions, mapping discriminator values to schemas.
     *
     * @generated from field: map<string, mochabugapis.adapt.graph.JTDSchema> mapping = 13;
     */
    mapping?: {
        [key: string]: JTDSchemaJson;
    };
};
/**
 * Describes the message mochabugapis.adapt.graph.JTDSchema.
 * Use `create(JTDSchemaSchema)` to create a new message.
 */
export declare const JTDSchemaSchema: GenMessage<JTDSchema, {
    jsonType: JTDSchemaJson;
}>;
//# sourceMappingURL=jtd_schema_pb.d.ts.map