import type { BaseApiClient } from '../types/api';
import type { QuestionsFilterBody, Question, Pagination } from '../types/questions';
/**
 * Hook state interface
 */
interface UseQuestionsListState {
    questions: Question[];
    pagination: Pagination | null;
    loading: boolean;
    loadingMore: boolean;
    error: string | null;
    currentFilters: Partial<QuestionsFilterBody> | null;
}
/**
 * Hook return type
 */
export interface UseQuestionsListReturn extends UseQuestionsListState {
    fetchQuestions: (filters?: Partial<QuestionsFilterBody>, append?: boolean) => Promise<void>;
    fetchRandomQuestions: (count: number, filters?: Partial<QuestionsFilterBody>) => Promise<Question[]>;
    fetchQuestionsByIds: (questionIds: string[]) => Promise<Question[]>;
    loadMore: (externalFilters?: Partial<QuestionsFilterBody>, externalPagination?: Pagination) => Promise<void>;
    reset: () => void;
}
/**
 * Create a questions list hook with API client injection.
 * @param apiClient - API client instance
 * @returns Pre-configured useQuestionsList hook
 *
 * @example
 * // In your app setup
 * import { createUseQuestionsList } from 'analytica-frontend-lib';
 * import api from './services/api';
 *
 * export const useQuestionsList = createUseQuestionsList(api);
 *
 * // Then use directly in components
 * const { questions, fetchQuestions, loadMore } = useQuestionsList();
 */
export declare const createUseQuestionsList: (apiClient: BaseApiClient) => () => UseQuestionsListReturn;
/**
 * Create a pre-configured questions list hook
 * This is a convenience function that returns a hook ready to use
 *
 * @param apiClient - API client instance
 * @returns Pre-configured useQuestionsList hook
 *
 * @example
 * // In your app setup
 * import { createQuestionsListHook } from 'analytica-frontend-lib';
 * import api from './services/api';
 *
 * export const useQuestionsList = createQuestionsListHook(api);
 *
 * // Then use directly in components
 * const { questions, fetchQuestions, loadMore } = useQuestionsList();
 */
export declare const createQuestionsListHook: (apiClient: BaseApiClient) => () => UseQuestionsListReturn;
export {};
//# sourceMappingURL=useQuestionsList.d.ts.map