export interface IMinimalActivatable { activate: () => Promise; deactivate: () => Promise; } export interface IActivatable extends IMinimalActivatable { readonly state: 'deactivated' | 'isActivating' | 'activated' | 'isDeactivating'; } export declare abstract class Activatable implements IActivatable { protected _state: 'deactivated' | 'isActivating' | 'activated' | 'isDeactivating'; get state(): "deactivated" | "isActivating" | "activated" | "isDeactivating"; activate(): Promise; deactivate(): Promise; protected abstract doActivate(): Promise; protected abstract doDeactivate(): Promise; } export interface IActivatableCollection extends IActivatable { } export declare class ActivatableCollection extends Activatable implements IActivatableCollection { readonly activatables: T[]; protected doActivate(): Promise; protected doDeactivate(): Promise; push(activatables: T): void; }