import { AfterViewInit, Injector, OnDestroy } from '@angular/core';
import { Title } from '@angular/platform-browser';
import { Viewport } from '@wm/core';
import { StylableComponent } from '@wm/components/base';
import * as i0 from "@angular/core";
export declare class PageDirective extends StylableComponent implements AfterViewInit, OnDestroy {
    private titleService;
    private viewport;
    static initializeProps: void;
    private _eventNotifier;
    refreshdataonattach: boolean;
    pagetitle: string;
    onPropertyChange(key: string, nv: any, ov?: any): void;
    constructor(inj: Injector, titleService: Title, viewport: Viewport, explicitContext: any);
    /**
     * A child component can notify page using this method. Notified event will be passed to
     * subscribed children only after page initialization.
     *
     * @param {string} eventName
     * @param data
     */
    notify(eventName: string, ...data: Array<any>): void;
    /**
     * The main purpose of this function is to provide communication between page children objects.
     * Child component can subscribe for an event that will be emitted by another child component.
     *
     * @param eventName
     * @param {(data: any) => void} callback
     * @returns {any}
     */
    subscribe(eventName: any, callback: (data: any) => void): () => void;
    ngAfterViewInit(): void;
    ngOnAttach(): void;
    ngOnDetach(): void;
    ngOnDestroy(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<PageDirective, [null, null, null, { optional: true; }]>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<PageDirective, "[wmPage]", ["wmPage"], {}, {}, never, never, false, never>;
}
