@teambit/harmony
Version:
abstract extension system
28 lines (27 loc) • 1.04 kB
TypeScript
import { SlotProvider } from './slots';
import { RuntimeManifest } from './runtimes/runtime-manifest';
import { RuntimeDefinition } from './runtimes';
export type AspectManifest = {
id: string;
dependencies?: Aspect[];
slots?: SlotProvider<unknown>[];
defaultConfig?: {
[key: string]: any;
};
declareRuntime?: RuntimeDefinition;
files?: string[];
};
export declare class Aspect {
id: string;
dependencies: Aspect[];
readonly slots: SlotProvider<unknown>[];
readonly defaultConfig: {};
readonly declareRuntime: RuntimeDefinition | undefined;
readonly files: string[];
constructor(id: string, dependencies: Aspect[], slots: SlotProvider<unknown>[], defaultConfig: {}, declareRuntime: RuntimeDefinition | undefined, files: string[]);
private _runtimes;
addRuntime(runtimeManifest: RuntimeManifest): this;
getRuntime(runtimeDef: RuntimeDefinition): undefined | RuntimeManifest;
getRuntimes(): RuntimeManifest[];
static create(manifest: AspectManifest): Aspect;
}