import { type ApplicationModuleDto, type ModuleSectionDto } from '@/services/api/adminApi';
export interface ModuleFormData {
    code: string;
    label: string;
    description: string;
    icon: string;
    route: string;
    displayOrder: number;
}
export interface UseApplicationModulesReturn {
    expandedModules: Set<string>;
    moduleSections: Map<string, ModuleSectionDto[]>;
    loadingSections: Set<string>;
    reordering: boolean;
    editingModule: ApplicationModuleDto | null;
    moduleFormData: ModuleFormData;
    showModuleForm: boolean;
    toggleModuleExpand: (appId: string, moduleId: string) => Promise<void>;
    handleSaveModule: (appId: string, moduleId: string, data: ModuleFormData) => Promise<void>;
    handleModulesReorder: (appId: string, modules: (ApplicationModuleDto & {
        id: string;
    })[]) => Promise<void>;
    handleSectionsReorder: (appId: string, moduleId: string, sections: ModuleSectionDto[]) => Promise<void>;
    startEditModule: (module: ApplicationModuleDto) => void;
    resetModuleForm: (moduleCount?: number) => void;
    setShowModuleForm: (show: boolean) => void;
    setEditingModule: (module: ApplicationModuleDto | null) => void;
    setModuleFormData: (data: ModuleFormData) => void;
}
export declare function useApplicationModules(): UseApplicationModulesReturn;
//# sourceMappingURL=useApplicationModules.d.ts.map