import { Injector } from '@angular/core'; import { Observable } from 'rxjs/Observable'; import { Frame } from './frame'; export declare abstract class Controller { private _modelSubject; private _viewSubject; private _model$; private _view$; private _model; private _view; private _frame; private _injector; /** * Model observable accessor. */ readonly model$: Observable; /** * View observable accessor. */ readonly view$: Observable; /** * Model accessor. */ readonly model: M; /** * View accessor. */ readonly view: V; /** * 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, injector: Injector): void; updateModel(model: M, replace?: boolean): void; updateView(view: V, replace?: boolean): void; }