/** * @module common */ /** End Typedoc Module Declaration */ import { RegistryEntityStatic, RegistryEntity } from '../registry/entityRegistry'; import { ModelMetadata } from '../metadata/metadata'; export declare type identifier = string | number | symbol; /** * Helper class for differentiating string keys with uuid keys */ export declare class UUID extends String { constructor(value?: any); } export interface ModelConstructor extends Function { constructor: ModelStatic; } export interface ModelStatic extends RegistryEntityStatic { new (data?: any, exists?: boolean): T; prototype: T; } /** * Common abstract class that **all** models must extend from. Provides common interfaces for other * services to interact with without knowing about the concrete implementation */ export declare abstract class AbstractModel extends RegistryEntity { constructor(data?: any); /** * Hydrates the model from given data * @param data * @returns {AbstractModel} */ protected hydrate(data: Object): this; /** * Get the primary identifier of the model * @returns {any} */ getIdentifier(): identifier; }