mosx
Version:
Multiview observable state management engine
35 lines (34 loc) • 1.39 kB
TypeScript
import { MosxTracker, IMosxTracker, IMosxTrackerParams } from "./internal";
import { DefinitionType } from "./decorators";
declare const mosx: unique symbol;
export interface IMeta {
type?: string;
props?: IMetaProperty[];
hidden?: boolean;
}
export interface IMetaProperty {
key: string;
type: DefinitionType;
hidden?: boolean;
getter?: boolean;
}
export declare abstract class Mosx {
static $mx: IMeta;
private [mosx];
constructor(owner?: Mosx, tags?: string | string[]);
static [Symbol.hasInstance](instance: any): any;
static inject(target: any, owner?: any, tags?: string | string[]): Mosx;
static new(Class: new (...args: any[]) => any, parent?: any, tags?: any): (...args: any[]) => any;
static isParent(target: any, parent: any): boolean;
static getParent(target: any): Mosx | null;
static setParent(target: any, owner?: any): void;
static getSnapshot(target: any, tags?: string | string[], spy?: boolean): any;
static createTracker<T>(target: T, params?: IMosxTrackerParams): IMosxTracker<T>;
static getTracker(target: any): MosxTracker | null;
static getTags(target: any): Set<string> | null;
static addTag(target: any, tags: string | string[]): void;
static deleteTag(target: any, id: string): void;
static meta(target: any): IMeta;
static destroy(target: any): void;
}
export {};