import type { BaseApiClient } from '../types/api';
import type { CategoryConfig } from '../components/CheckBoxGroup/CheckBoxGroup';
import type { KnowledgeStructureState, Bank, BankYear, KnowledgeArea } from '../types/activityFilters';
import { QUESTION_TYPE } from '../components/Quiz/useQuizStore';
/**
 * Configuration options for the useActivityFiltersData hook
 */
export interface UseActivityFiltersDataOptions {
    /**
     * Selected subjects for loading knowledge structure
     */
    selectedSubjects: string[];
    /**
     * Institution ID for loading question types (optional)
     */
    institutionId?: string | null;
}
/**
 * Return type for the useActivityFiltersData hook
 */
export interface UseActivityFiltersDataReturn {
    banks: Bank[];
    bankYears: BankYear[];
    loadingBanks: boolean;
    banksError: string | null;
    loadBanks: () => Promise<void>;
    knowledgeAreas: KnowledgeArea[];
    loadingSubjects: boolean;
    subjectsError: string | null;
    loadKnowledgeAreas: () => Promise<void>;
    knowledgeStructure: KnowledgeStructureState;
    knowledgeCategories: CategoryConfig[];
    handleCategoriesChange: (updatedCategories: CategoryConfig[]) => void;
    selectedKnowledgeSummary: {
        topics: string[];
        subtopics: string[];
        contents: string[];
    };
    enableSummary: boolean;
    loadTopics: (subjectIds: string[]) => Promise<void>;
    loadSubtopics: (topicIds: string[], options?: {
        forceApi?: boolean;
    }) => Promise<void>;
    loadContents: (subtopicIds: string[]) => Promise<void>;
    questionTypes: QUESTION_TYPE[];
    loadingQuestionTypes: boolean;
    questionTypesError: string | null;
    loadQuestionTypes: () => Promise<void>;
}
/**
 * Create an activity filters data hook with API client injection.
 * @param apiClient - API client instance
 */
export declare const createUseActivityFiltersData: (apiClient: BaseApiClient) => (options: UseActivityFiltersDataOptions) => UseActivityFiltersDataReturn;
/**
 * Create a pre-configured activity filters data hook
 * This is a convenience function that returns a hook ready to use
 *
 * @param apiClient - API client instance
 * @returns Pre-configured useActivityFiltersData hook
 *
 * @example
 * // In your app setup
 * import { createActivityFiltersDataHook } from 'analytica-frontend-lib';
 * import api from './services/api';
 *
 * export const useActivityFiltersData = createActivityFiltersDataHook(api);
 *
 * // Then use directly in components
 * const { banks, knowledgeAreas, loadBanks } = useActivityFiltersData({
 *   selectedSubjects: [],
 *   institutionId: 'institution-id',
 * });
 */
export declare const createActivityFiltersDataHook: (apiClient: BaseApiClient) => (options: UseActivityFiltersDataOptions) => UseActivityFiltersDataReturn;
//# sourceMappingURL=useActivityFiltersData.d.ts.map