import { ComponentRef, ElementRef, EventEmitter, Renderer } from '@angular/core';
import { Footer, Header } from '../components/toolbar/toolbar';
import { Navbar } from '../components/navbar/navbar';
import { NavControllerBase } from './nav-controller-base';
import { NavOptions, ViewState } from './nav-util';
import { NavParams } from './nav-params';
export declare class ViewController {
    component: any;
    private _cntDir;
    private _cntRef;
    private _hdrDir;
    private _ftrDir;
    private _isHidden;
    private _leavingOpts;
    private _nb;
    private _onDidDismiss;
    private _onWillDismiss;
    private _detached;
    willEnter: EventEmitter<any>;
    didEnter: EventEmitter<any>;
    willLeave: EventEmitter<any>;
    didLeave: EventEmitter<any>;
    willUnload: EventEmitter<any>;
    data: any;
    instance: any;
    id: string;
    isOverlay: boolean;
    _cmp: ComponentRef<any>;
    _nav: NavControllerBase;
    _zIndex: number;
    _state: ViewState;
    _cssClass: string;
    private _emitter;
    constructor(component?: any, data?: any, rootCssClass?: string);
    init(componentRef: ComponentRef<any>): void;
    _setNav(navCtrl: NavControllerBase): void;
    _setInstance(instance: any): void;
    subscribe(generatorOrNext?: any): any;
    emit(data?: any): void;
    onDismiss(callback: Function): void;
    onDidDismiss(callback: Function): void;
    onWillDismiss(callback: Function): void;
    dismiss(data?: any, role?: any, navOptions?: NavOptions): Promise<boolean>;
    getNav(): NavControllerBase;
    getTransitionName(direction: string): string;
    getNavParams(): NavParams;
    setLeavingOpts(opts: NavOptions): void;
    enableBack(): boolean;
    readonly name: string;
    readonly index: number;
    isFirst(): boolean;
    isLast(): boolean;
    _domShow(shouldShow: boolean, renderer: Renderer): void;
    _setZIndex(zIndex: number, renderer: Renderer): void;
    pageRef(): ElementRef;
    _setContent(directive: any): void;
    getContent(): any;
    _setContentRef(elementRef: ElementRef): void;
    contentRef(): ElementRef;
    _setHeader(directive: Header): void;
    getHeader(): Header;
    _setFooter(directive: Footer): void;
    getFooter(): Footer;
    _setNavbar(directive: Navbar): void;
    getNavbar(): Navbar;
    hasNavbar(): boolean;
    setBackButtonText(val: string): void;
    showBackButton(shouldShow: boolean): void;
    _willLoad(): void;
    _didLoad(): void;
    _willEnter(): void;
    _didEnter(): void;
    _willLeave(): void;
    _didLeave(): void;
    _willUnload(): void;
    _destroy(renderer: Renderer): void;
    _lifecycleTest(lifecycle: string): boolean | string | Promise<any>;
}
export declare function isViewController(viewCtrl: any): boolean;
