import { DataBindingStateComponentProps } from '@contember/react-binding';
import { ComponentType, ReactElement, ReactNode } from 'react';
export interface PageProvider<P> {
    getPageName(props: P, fallback?: string): string;
}
export type PageProviderElement = ReactElement<any, ComponentType<any> & PageProvider<any>>;
export interface PageModule {
    [action: string]: ComponentType<any> | ReactElement<any> | undefined;
}
export type LazyPageModule = () => Promise<PageModule>;
export type PagesMapElement = LazyPageModule | PageModule | ComponentType<any> | ReactElement<any> | PageProviderElement;
export type PagesMap = Record<string, PagesMapElement>;
export interface PagesProps {
    children: PagesMap | PageProviderElement[] | PageProviderElement;
    layout?: ComponentType<{
        children?: ReactNode;
    }>;
    bindingFeedbackRenderer?: ComponentType<DataBindingStateComponentProps>;
}
/**
 * Pages element specifies collection of pages (component Page or component with getPageName static method).
 */
export declare const Pages: ({ children, layout, bindingFeedbackRenderer }: PagesProps) => import("react/jsx-runtime").JSX.Element;
//# sourceMappingURL=Pages.d.ts.map