import { FC } from 'react';
import { NavigationCollapsibleGroupProps, NavigationGroupProps, NavigationItemProps, RootNavigationItemProps } from './components';
export declare enum MainNavigationActionType {
    HideNavigation = "HideNavigation",
    SetActive = "SetActive",
    SetAll = "SetAll"
}
type MainNavigationItemComponentProps = RootNavigationItemProps & NavigationItemProps & NavigationGroupProps & NavigationCollapsibleGroupProps;
export type MainNavigationItem<Props extends MainNavigationItemComponentProps = MainNavigationItemComponentProps> = {
    component?: FC<React.PropsWithChildren<Props>>;
    hasGoBackIcon?: boolean;
    index?: number;
    isNested?: boolean;
    items?: MainNavigationItem[];
    name?: string;
    parent?: MainNavigationItem;
    props?: Props;
};
export type MainNavigationState = {
    activeNavigation: {
        sectionLast: string;
        sectionToShow: MainNavigationItem | null;
        sections: Record<string, number>;
        to: string;
    };
    allNavigation: MainNavigationItem;
    hideNavigation: boolean;
};
export type MainNavigationActionSetActive = {
    action: MainNavigationActionType.SetActive;
    payload: string;
};
export type MainNavigationActionSetAll = {
    action: MainNavigationActionType.SetAll;
    payload: MainNavigationItem;
};
export type MainNavigationActionHideNavigation = {
    action: MainNavigationActionType.HideNavigation;
};
export type MainNavigationAction = MainNavigationActionSetActive | MainNavigationActionSetAll | MainNavigationActionHideNavigation;
export interface IMainNavigationContext {
    mainNavigationDispatch: React.Dispatch<MainNavigationAction>;
    mainNavigationState: MainNavigationState;
}
export {};
