import { Type, IType } from "./type"; import { Model, IModel } from "./model"; import { ModelPack } from "./model-pack"; import { TypePack } from "./type-pack"; import { ValueType } from "./value"; import { Serializable, Serialized } from "./serialize"; /** * @ignore */ export interface IDomain { [_: string]: ValueType; name?: string; types?: IType[]; models?: IModel[]; } /** * A domain represents a set of types and models. */ export declare class Domain implements Serializable { private _name; private _types; private _models; constructor(); get name(): string | undefined; get types(): Type[]; get models(): Model[]; getType(reference: string): Type; getTypePack(reference: string): TypePack; getModel(reference: string): Model; getModelPack(reference: string): ModelPack; deserializeAsync(value: Serialized): Promise; deserializeSync(value: Serialized): void; serialize(): Serialized; } export interface DomainInfo { typeVersions: string[]; modelVersions: string[]; } export interface DomainDefinition { domain: Domain; value?: T; }