import { IEventDispatcher } from '../events/IEventDispatcher'; import { IAbstraction } from './IAbstraction'; import { IAssetAdapter } from './IAssetAdapter'; export interface IAsset extends IEventDispatcher { adapter: IAssetAdapter; /** * */ name: string; /** * */ id: number; /** * */ assetNamespace: string; /** * */ assetType: string; /** * * @param name * @param ns */ assetPathEquals(name: string, ns: string): boolean; /** * */ clone(): IAsset; /** * */ invalidate(); /** * * @param IAssetClass */ isAsset(IAssetClass): boolean; /** * * @param name * @param ns * @param overrideOriginal */ resetAssetPath(name: string, ns: string, overrideOriginal?: boolean): void; addAbstraction(abstraction: IAbstraction): void; removeAbstraction(abstraction: IAbstraction): void; }