import type { AxiosInstance } from 'axios';
/**
 * Interface for modules configuration
 * All modules that can be controlled via feature flags
 */
export interface ModulesConfig {
    simulator: boolean;
    essay: boolean;
    forum: boolean;
    support: boolean;
    simulatedReports: boolean;
    activitiesReports: boolean;
    lessonsReports: boolean;
    exams: boolean;
}
/**
 * Interface defining the modules state
 */
export interface ModulesState {
    modules: ModulesConfig;
    loading: boolean;
    ownerInstitutionId: string | null;
    fetchModules: (institutionId: string, api: AxiosInstance) => Promise<void>;
    clearModules: () => void;
}
/**
 * Zustand store for managing modules visibility with persistence
 * Works with both student and professor frontends
 */
export declare const useModulesStore: import("zustand").UseBoundStore<Omit<import("zustand").StoreApi<ModulesState>, "setState" | "persist"> & {
    setState(partial: ModulesState | Partial<ModulesState> | ((state: ModulesState) => ModulesState | Partial<ModulesState>), replace?: false | undefined): unknown;
    setState(state: ModulesState | ((state: ModulesState) => ModulesState), replace: true): unknown;
    persist: {
        setOptions: (options: Partial<import("zustand/middleware").PersistOptions<ModulesState, unknown, unknown>>) => void;
        clearStorage: () => void;
        rehydrate: () => Promise<void> | void;
        hasHydrated: () => boolean;
        onHydrate: (fn: (state: ModulesState) => void) => () => void;
        onFinishHydration: (fn: (state: ModulesState) => void) => () => void;
        getOptions: () => Partial<import("zustand/middleware").PersistOptions<ModulesState, unknown, unknown>>;
    };
}>;
//# sourceMappingURL=modulesStore.d.ts.map