import { Injector } from '@angular/core'; import { Observable } from 'rxjs/Observable'; import { Frame } from './frame'; export declare abstract class Controller { private _modelSubject; private _model$; private _model; private _viewSubject; private _view$; private _view; private _markForCheckSubject; private _markForCheck$; private _frame; private _framerName; private _injector; private _refCount; /** * Model observable accessor. */ readonly model$: Observable; /** * Model accessor. */ readonly model: M; /** * View observable accessor. */ readonly view$: Observable; /** * View accessor. */ readonly view: V; /** * Mark for check observable accessor. */ readonly markForCheck$: Observable; /** * Frame accessor. */ readonly frame: Frame; /** * Model accessor. */ readonly injector: Injector; /** * Called after controller is initialized with model, view & frame from framing. */ onControllerInit(): void; /** * Called when the controller's route starts resolving. */ onResolveStart(): void; /** * Called when the controller's route end resolving. */ onResolveEnd(): void; /** * Called when the controller's route resolve is cancelled. */ onResolveCancel(): void; /** * Called by framing after construction to link the model, view & frame for this controller. */ initController(model: M, view: V, frame: Frame, framerName: string, injector: Injector): void; updateModel(model: M, replace?: boolean): void; updateView(view: V, replace?: boolean): void; markForCheck(): void; attach(): void; detach(): void; onAttached(): void; onDetached(): void; }