///
///
/** Angular2 */
import * as ng from "@angular/core";
/** Core */
import { CoreComponent } from "cmf.core/src/core";
import { ModalMode } from 'cmf.core/src/domain/extensions/modal';
/** Bags */
import { PageBag } from './pageBag';
import { ModalHandler } from "../../directives/modalHandler/modalHandler";
/**
* This interface holds the current scrollable container which the scroll event must be subscribed.
*/
export interface ScrollableContainerConfig {
container: JQuery;
}
/**
* This is the token that consumers of the scrollable container need to request.
*/
export declare const SCROLLABLE_CONTAINER_CONFIG: ng.InjectionToken;
/**
* @whatItDoes
* The Page component.
* This component serves as the container for a single page.
*
* @howToUse
* This component is used with the inputs and outputs mentioned below.
*
* ### Inputs
* `PageBag` : **page-bag** - This bag can hold data concerning the component, like if it is active or not, title, context ... ;
* `boolean` : **isActive** - Tells if the page is currently active or not. When the page is active, we allow the change detection on thr page .
*
* ### Example
* To use the component, assume this HTML Template as an example:
*
* ```HTML
*
*
* ```
*
*/
export declare class Page extends CoreComponent implements ng.OnInit, ng.OnChanges, ng.AfterViewInit, ModalHandler {
pageBagInjected: PageBag;
private _changeDetectorRef;
private _scrollContainer;
elementRef: ng.ElementRef;
/**
* Reference to an instance of the Page bag satellite dependency.
* This bag can hold data concerning the component, like if it is active or not, title, context,...
* Adding/Removing these entries will equate to the instantiation/removal of sub-components.
*
* @property {PageBag}
*/
bag: PageBag;
/**
* Tells if the page is currently active or not. When the page is active, we allow the change detection on thr page.
* If it is not active, then we detach the change detection. This is aimed to achieve a better performance and focus
* on what's really relevant to user, which is the active page.
*/
isActive: boolean;
/**
* Modal container
*/
modals: PageBag[];
/**
* Modal Mode for this component.
* By default it's page.
*/
modalMode: ModalMode;
private _scrollContainerElement;
/**
* @method constructor
*/
constructor(pageBagInjected: PageBag, _changeDetectorRef: ng.ChangeDetectorRef, _scrollContainer: ScrollableContainerConfig, elementRef: ng.ElementRef);
ngOnInit(): void;
ngAfterViewInit(): void;
ngOnChanges(changes: ng.SimpleChanges): void;
}
export declare class PageModule {
}