import { Domain, IDomain } from "./domain"; import { InterfaceChannel, InterfaceMethod, InterfaceValue, Model } from "./model"; import { ValueType } from "./value"; import { Serializable, Serialized } from "./serialize"; /** * @ignore */ export interface IModelPack { [_: string]: ValueType; domain: IDomain; reference: string; } /** * A model pack is a combination of a domain and a reference to a model within that domain. * * Its domain contains at least all the types and models that are used in the model pack, so that the model can be * resolved. */ export declare class ModelPack implements Serializable { private _domain?; private _reference?; constructor(domain?: Domain, reference?: string); /** * The domain that contains the model. */ get domain(): Domain; /** * The reference to the model within the domain. */ get reference(): string; /** * The model that is referenced by the model pack. */ get content(): Model; /** * The version of the model that is referenced by the model pack. */ get version(): string | undefined; /** * The model versions that are fulfilled by the model that is referenced by the model pack. */ get versions(): string[]; /** * All channels that have to exist in the model that is referenced by the model pack. */ get channels(): InterfaceChannel[]; /** * All values that have to exist in the model that is referenced by the model pack. */ get values(): InterfaceValue[]; /** * All methods that have to be implemented by the model that is referenced by the model pack. */ get methods(): InterfaceMethod[]; deserializeAsync(value: Serialized): Promise; deserializeSync(value: Serialized): void; serialize(): Serialized; }