import { NavController } from './nav-controller';
import { NavRegistry } from './nav-registry';
/**
 * Directive for declaratively linking to a new page instead of using
 * [NavController.push()](../NavController/#push). Similar to ui-router's `ui-sref`.
 *
 * Basic usage:
 * ```html
 * <button [nav-push]="pushPage"></button>
 * ```
 * To specify parameters you can use array syntax or the `nav-params` property:
 * ```html
 * <button [nav-push]="pushPage" [nav-params]="params"></button>
 * ```
 * Where `pushPage` and `params` are specified in your component, and `pushPage`
 * contains a reference to a [@Page component](../../../config/Page/):
 *
 * ```ts
 * import {LoginPage} from 'login';
 * @Page({
 *   template: `<button [nav-push]="pushPage" [nav-params]="params"></button>`
 * })
 * class MyPage {
 *   constructor(){
 *     this.pushPage = LoginPage;
 *     this.params = { id: 42 };
 *   }
 * }
 * ```
 *
 * ### Alternate syntax
 * You can also use syntax similar to Angular2's router, passing an array to
 * NavPush:
 * ```html
 * <button [nav-push]="[pushPage, params]"></button>
 * ```
 * @demo /docs/v2/demos/nav-push-pop/
 * @see {@link /docs/v2/components#navigation Navigation Component Docs}
 * @see {@link ../NavPop NavPop API Docs}
 */
export declare class NavPush {
    /**
     * TODO
     * @param {NavController} nav  TODO
     */
    constructor(nav: NavController, registry: NavRegistry);
    onClick(): void;
}
/**
 * TODO
 * @demo /docs/v2/demos/nav-push-pop/
 * @see {@link /docs/v2/components#navigation Navigation Component Docs}
 * @see {@link ../NavPush NavPush API Docs}
 */
export declare class NavPop {
    /**
     * TODO
     * @param {NavController} nav  TODO
     */
    constructor(nav: NavController);
    onClick(): void;
}
