analytica-frontend-lib
Version:
Repositório público dos componentes utilizados nas plataformas da Analytica Ensino
38 lines • 1.85 kB
TypeScript
import type { AxiosInstance } from 'axios';
import { type ModulesConfig } from '../types/modulesConfig';
/**
* Interface defining the modules state
*/
export interface ModulesState {
modules: ModulesConfig;
loading: boolean;
ownerInstitutionId: string | null;
ownerProfileType: string | null;
/**
* Fetch modules configuration from the API
* @param institutionId - The institution UUID
* @param api - Axios instance for API calls
* @param profileType - Optional profile type (STUDENT, TEACHER, UNIT_MANAGER, etc.)
*/
fetchModules: (institutionId: string, api: AxiosInstance, profileType?: string) => Promise<void>;
clearModules: () => void;
}
/**
* Zustand store for managing modules visibility with persistence
* Works with all frontends (student, professor, gestor)
* Supports profile-specific feature flags
*/
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