/// <reference types="react" />
import { StyleProps, ReactElement } from '../@declares';
import { Box, Flex } from '../atoms';
import { Button, ButtonTypes } from './Button';
declare namespace RootViewController {
    type Methods = {
        Base: React.FC<RootViewController.Base>;
        TopNavigation: React.FC<Flex.Input>;
        SideNavigation: React.FC<Flex.Input>;
        FooterNavigation: React.FC<Flex.Input & {
            baseStyles?: StyleProps.States;
        }>;
        Comps: {
            Button: React.FC<Button & {
                currentPath?: string;
            }>;
            Title: React.FC<Box.DefaultInput>;
            Bar: React.FC<Box.DefaultInput>;
        };
        fn: FNs;
    };
    type Base = Box.DefaultInput & {
        topNavigation?: ReactElement;
        sideNavigation?: ReactElement;
        footerNavigation?: ReactElement;
    };
    type Button = Button.Input<ButtonTypes.ClearColors> & {
        path?: string;
        pathGroup?: (string | RegExp) | (string | RegExp)[];
    };
    type FNs = {
        updateCSSProperty: {
            topNav(): void;
            footer(): void;
            sideNav(): void;
            reset(): void;
        };
        viewHeight: number;
        viewWidth: number;
        contentHeight: number;
        contentWidth: number;
        topBase: number;
        sideNavHeight: number;
        topNavHeight: number;
        footerNavHeight: number;
        safeAreaTop: number;
        safeAreaBottom: number;
        safeAreaLeft: number;
        safeAreaRight: number;
    };
}
declare const RootViewController: RootViewController.Methods;
export { RootViewController, RootViewController as default };
