import type { RecommendedClassModelTableItem, RecommendedClassModelFilters, RecommendedClassModelPagination } from '../types/recommendedLessons';
import type { BaseApiClient } from '../types/api';
/**
 * Hook state interface for recommendedClass drafts
 */
export interface UseRecommendedClassDraftsState {
    models: RecommendedClassModelTableItem[];
    loading: boolean;
    error: string | null;
    pagination: RecommendedClassModelPagination;
}
/**
 * Hook return type for recommendedClass drafts
 */
export interface UseRecommendedClassDraftsReturn extends UseRecommendedClassDraftsState {
    fetchModels: (filters?: RecommendedClassModelFilters, subjectsMap?: Map<string, string>) => Promise<void>;
    deleteModel: (id: string) => Promise<boolean>;
}
/**
 * Default pagination values for drafts
 */
export declare const DEFAULT_RECOMMENDED_CLASS_DRAFTS_PAGINATION: RecommendedClassModelPagination;
/**
 * Handle errors during draft fetch
 * Uses the generic error handler factory to reduce code duplication
 */
export declare const handleRecommendedClassDraftFetchError: (error: unknown) => string;
/**
 * Factory function to create useRecommendedClassDrafts hook
 *
 * @param apiClient - API client adapter with get and delete methods
 * @returns Hook for managing recommendedClass drafts
 *
 * @example
 * ```tsx
 * const useRecommendedClassDrafts = createUseRecommendedClassDrafts(apiClientAdapter);
 *
 * // In your component
 * const { models, loading, error, pagination, fetchModels, deleteModel } = useRecommendedClassDrafts();
 * ```
 */
export declare const createUseRecommendedClassDrafts: (apiClient: BaseApiClient) => () => UseRecommendedClassDraftsReturn;
/**
 * Alias for createUseRecommendedClassDrafts
 */
export declare const createRecommendedClassDraftsHook: (apiClient: BaseApiClient) => () => UseRecommendedClassDraftsReturn;
//# sourceMappingURL=useRecommendedClassDrafts.d.ts.map