tav-media
Version:
Cross platform media editing framework
38 lines (37 loc) • 1.61 kB
TypeScript
interface IMap<T> {
[key: string]: T;
}
export declare type TAVClass = new () => TAVObject;
export declare class TAVObject {
private static classes;
private static instances;
static parse<T extends TAVObject>(source: unknown): T | undefined;
static declareType(name: string, class_: TAVClass): void;
static getType(name: string): TAVClass;
id: string;
prepared: boolean;
readonly type: string;
protected nativeInvalidated: boolean;
protected _nativeObject?: any;
constructor(id?: string);
prepare(): Promise<void>;
release(): void;
protected doPrepare(): Promise<void>;
protected invalidated(): void;
}
export declare function isTAVObject(source: unknown, classes: IMap<TAVClass>): source is TAVObject;
interface ObjectRef {
target: any;
prop: string | number;
}
export declare class ObjectPlaceholder extends TAVObject {
refs: ObjectRef[];
resolve(realValue: unknown): void;
}
export declare function parseTAVObject<T extends TAVObject>(source: unknown, classes: IMap<TAVClass>, instances: IMap<TAVObject>): TAVObject;
export declare function uuid(len?: number): string;
export declare function updateNative(_target: any, name: string, descriptor: PropertyDescriptor): void;
export declare function updateNativeIfEffect(_target: any, name: string, descriptor: PropertyDescriptor): void;
export declare function allowCallNativeAnytime(_target: any, name: string, descriptor: PropertyDescriptor): void;
export declare function updateNativeOrMakeInvalidate(_target: any, name: string, descriptor: PropertyDescriptor): void;
export {};