import { DeepPartial } from "@azure-tools/codegen"; import { Parameter } from "../parameter"; import { Property } from "../property"; import { Schema, ComplexSchema } from "../schema"; import { SchemaType } from "../schema-type"; import { SchemaUsage } from "./usage"; export interface Relations { immediate: Array; all: Array; } export declare class Relations { constructor(); } export interface Discriminator { property: Property; immediate: Record; all: Record; } export declare class Discriminator implements Discriminator { property: Property; constructor(property: Property); } export interface GroupProperty extends Property { originalParameter: Array; } export declare class GroupProperty extends Property implements GroupProperty { originalParameter: Parameter[]; constructor(name: string, description: string, schema: Schema, initializer?: DeepPartial); } export interface GroupSchema extends Schema, SchemaUsage { type: SchemaType.Group; properties?: Array; } export declare class GroupSchema extends Schema implements GroupSchema { constructor(name: string, description: string, objectInitializer?: DeepPartial); add(property: GroupProperty): GroupProperty; } /** a schema that represents a type with child properties. */ export interface ObjectSchema extends ComplexSchema, SchemaUsage { /** the schema type */ type: SchemaType.Object; /** the property of the polymorphic descriminator for this type, if there is one */ discriminator?: Discriminator; /** the collection of properties that are in this object */ properties?: Array; /** maximum number of properties permitted */ maxProperties?: number; /** minimum number of properties permitted */ minProperties?: number; parents?: Relations; children?: Relations; discriminatorValue?: string; } export declare class ObjectSchema extends Schema implements ObjectSchema { constructor(name: string, description: string, objectInitializer?: DeepPartial); addProperty(property: Property): Property; } export declare function isObjectSchema(schema: Schema): schema is ObjectSchema; export declare function getAllProperties(schema: ObjectSchema): Iterable; export declare function getAllParentProperties(schema: ObjectSchema): Iterable; //# sourceMappingURL=object.d.ts.map