import { type ReactNode } from 'react';
export interface ApplicationDto {
    id: string;
    code: string;
    label: string;
    icon: string | null;
    route: string | null;
    displayOrder: number;
    modules: ModuleDto[];
}
export interface ModuleDto {
    id: string;
    code: string;
    label: string;
    icon: string | null;
    route: string | null;
    displayOrder: number;
    sections: SectionDto[];
}
export interface SectionDto {
    id: string;
    code: string;
    label: string;
    icon: string | null;
    route: string | null;
    displayOrder: number;
    resources: ResourceDto[];
}
export interface ResourceDto {
    id: string;
    code: string;
    label: string;
    route: string | null;
    displayOrder: number;
}
export interface ContextMenuDto {
    id: string;
    code: string;
    label: string;
    icon: string | null;
    route: string | null;
    displayOrder: number;
    applications: ApplicationDto[];
}
export interface MenuDto {
    contexts: ContextMenuDto[];
}
export interface FavoriteApplication {
    id: string;
    code: string;
    label: string;
    icon: string | null;
    route: string | null;
    displayOrder: number;
}
interface NavigationContextType {
    menu: MenuDto | null;
    favorites: FavoriteApplication[];
    currentContextCode: string | null;
    currentAppCode: string | null;
    currentModuleCode: string | null;
    isLoading: boolean;
    getCurrentContext: () => ContextMenuDto | undefined;
    getCurrentApplication: () => ApplicationDto | undefined;
    getCurrentModule: () => ModuleDto | undefined;
    getApplicationsForContext: (contextCode: string) => ApplicationDto[];
    toggleFavorite: (applicationId: string) => Promise<void>;
    isFavorite: (applicationId: string) => boolean;
    refreshMenu: () => Promise<void>;
}
export declare function NavigationProvider({ children }: {
    children: ReactNode;
}): import("react/jsx-runtime").JSX.Element;
export declare function useNavigation(): NavigationContextType;
export {};
//# sourceMappingURL=NavigationContext.d.ts.map