import { DeepPartial } from "@azure-tools/codegen"; import { ComplexSchema, Schema } from "../schema"; import { SchemaType } from "../schema-type"; /** an OR relationship between several schemas * * @note - this expresses that the schema can be * any combination of the schema types given, which means * that this restricts the types to just * because it does not make sense that a value can be a 'primitive' * and an 'object' at the same time. Nor does it make sense * that a value can be two primitive types at the same time. */ export interface OrSchema extends ComplexSchema { /** the set of schemas that this schema is composed of. Every schema is optional */ anyOf: Array; } export declare class OrSchema extends Schema implements OrSchema { constructor(name: string, description: string, objectInitializer?: DeepPartial); } /** an XOR relationship between several schemas * * @note because this indicates that the actual schema * can be any one of the possible types, there is no * restriction on the type that it may be. (bool or object or number is ok) */ export interface XorSchema extends Schema { /** the set of schemas that this must be one and only one of. */ oneOf: Array; } export declare class XorSchema extends Schema implements XorSchema { constructor(name: string, description: string, objectInitializer?: DeepPartial); } /** a NOT relationship between schemas * * @fearthecowboy - I don't think we're going to impmement this. */ export interface NotSchema extends Schema { /** the schema type */ type: SchemaType.Not; /** the schema that this may not be. */ not: Schema; } //# sourceMappingURL=relationship.d.ts.map