import { IActivationController, ICancellation } from "../interfaces"; import { AsyncComponent } from "./AsyncComponent"; import { TraceSource } from "../log/TraceSource"; declare type Constructor = new (...args: any[]) => T; export declare function ActivatableMixin>(Base: TBase): { new (...args: any[]): { _controller: IActivationController | undefined; _active: boolean; isActive(): boolean; hasActivationController(): boolean; getActivationController(): IActivationController; setActivationController(controller: IActivationController): void; onActivating(ct: ICancellation): Promise; onActivated(ct: ICancellation): Promise; activate(ct?: ICancellation): Promise; _activateAsync(ct: ICancellation): Promise; onDeactivating(ct: ICancellation): Promise; onDeactivated(ct: ICancellation): Promise; deactivate(ct?: ICancellation): Promise; _deactivateAsync(ct: ICancellation): Promise; _cancel: (e: any) => void; _completion: Promise; getCompletion(): Promise; runOperation(op: (ct: ICancellation) => any, ct?: ICancellation): Promise; cancel(reason: any): void; }; } & TBase; export declare const traceSource: TraceSource; export {};