/**
 * Created by rburson on 3/18/16.
 */
import * as React from 'react';
import { CvState, CvProps, CvEvent, CvNavigationResult, CvStateChangeResult, CvActionFiredResult, CvFormComponentProvider } from './../catreact';
export interface CvNavigatorState extends CvState {
}
export interface CvNavigatorProps extends CvProps {
    /**
     * The result of a navigation.  Should not be used if the navigationId property is provided
     */
    navigationResult?: CvNavigationResult;
    /**
     * The cache identifier of the result of a Navigation.
     * Should not be used if the navigationResult property is provided
     */
    navigationId?: string;
    /**
     * Register to receive {@link CvEvent}s of type {@link CvNavigationResult}
     */
    navigationListeners?: Array<(event: CvEvent<CvNavigationResult>) => void>;
    /**
     * Register to receive {@link CvEvent}s of type {@link CvActionFiredResult}
     */
    actionListeners?: Array<(event: CvEvent<CvActionFiredResult>) => void>;
    /**
     * Register to receive {@link CvEvent}s of type {@link CvStateChangeResult}
     */
    stateChangeListeners?: Array<(event: CvEvent<CvStateChangeResult>) => void>;
    /**
     * A FormLayout component to use instead of the one supplied by the server meta data
     */
    layoutOverrideElem?: any;
    /**
     * Provide a custom renderer for the entire form.  See {@link CvFormComponentProvider}
     */
    formComponentProvider?: CvFormComponentProvider;
    /**
     * Setting persistent true, allows this component to remain visible, even after another, new Navigation has
     * taken place.  This is useful for single page apps where components may be coresident.
     */
    persistent?: boolean;
    /**
     * Allows for one Navigation component to target another, when coresident on the page.
     */
    targetId?: string;
}
/**
 * Render a NavRequest
 */
export declare var CvNavigator: React.ClassicComponentClass<CvNavigatorProps>;
