import { Constructor } from 'type-fest';
import { PageStateManager } from './state/PageStateManager';
import { OCAliasMap } from '../config/bind';
import { Controller } from '../controller/Controller';
import { ObjectContainer } from '../oc/ObjectContainer';
import { RouteController } from '../router/AbstractRoute';
import { RouteOptions } from '../router/Router';
/**
 * Factory for page.
 */
export declare class PageFactory {
    /**
     * The current application object container.
     */
    _oc: ObjectContainer;
    /**
     * Factory used by page management classes.
     */
    constructor(oc: ObjectContainer);
    /**
     * Create new instance of {@link Controller}.
     */
    createController(controller: RouteController, options: RouteOptions): Controller;
    /**
     * Retrieves the specified react component class.
     *
     * @param view The namespace
     *        referring to a react component class, or a react component class
     *        constructor.
     * @return The react component class
     *         constructor.
     */
    createView<V extends keyof OCAliasMap | Constructor<any> | ((...args: any[]) => any)>(view: V): (V & Function) | Constructor<keyof OCAliasMap | Constructor<any>>;
    /**
     * Returns decorated controller for ease setting seo params in controller.
     */
    decorateController(controller: Controller): import("..").ControllerDecorator<{}, {}, {}>;
    /**
     * Returns decorated page state manager for extension.
     */
    decoratePageStateManager(pageStateManager: PageStateManager, allowedStateKeys: string[]): import("..").PageStateManagerDecorator;
}
//# sourceMappingURL=PageFactory.d.ts.map