import { z } from 'zod';
import { RecommendedClassDisplayStatus } from '../types/recommendedLessons';
import type { RecommendedClassHistoryItem, RecommendedClassTableItem, RecommendedClassHistoryApiResponse, RecommendedClassHistoryFilters, RecommendedClassHistoryPagination } from '../types/recommendedLessons';
export declare const recommendedClassHistoryApiResponseSchema: z.ZodObject<{
    message: z.ZodString;
    data: z.ZodObject<{
        recommendedClass: z.ZodArray<z.ZodObject<{
            recommendedClass: z.ZodObject<{
                id: z.ZodString;
                title: z.ZodString;
                startDate: z.ZodNullable<z.ZodString>;
                finalDate: z.ZodNullable<z.ZodString>;
                createdAt: z.ZodString;
                progress: z.ZodNumber;
                totalLessons: z.ZodNumber;
            }, z.core.$strip>;
            subject: z.ZodNullable<z.ZodObject<{
                id: z.ZodString;
                name: z.ZodString;
            }, z.core.$strip>>;
            creator: z.ZodNullable<z.ZodObject<{
                id: z.ZodString;
                name: z.ZodString;
            }, z.core.$strip>>;
            stats: z.ZodObject<{
                totalStudents: z.ZodNumber;
                completedCount: z.ZodNumber;
                completionPercentage: z.ZodNumber;
            }, z.core.$strip>;
            breakdown: z.ZodArray<z.ZodObject<{
                classId: z.ZodString;
                className: z.ZodString;
                schoolId: z.ZodString;
                schoolName: z.ZodString;
                studentCount: z.ZodNumber;
                completedCount: z.ZodNumber;
            }, z.core.$strip>>;
        }, z.core.$strip>>;
        total: z.ZodNumber;
    }, z.core.$strip>;
}, z.core.$strip>;
/**
 * Hook state interface
 */
export interface UseRecommendedLessonsHistoryState {
    recommendedClass: RecommendedClassTableItem[];
    loading: boolean;
    error: string | null;
    pagination: RecommendedClassHistoryPagination;
}
/**
 * Hook return type
 */
export interface UseRecommendedLessonsHistoryReturn extends UseRecommendedLessonsHistoryState {
    fetchRecommendedClass: (filters?: RecommendedClassHistoryFilters) => Promise<void>;
}
/**
 * Determine status based on dates and completion
 * @param finalDate - RecommendedClass final date
 * @param completionPercentage - Completion percentage
 * @returns Display status for UI
 */
export declare const determineRecommendedClassStatus: (finalDate: string | null, completionPercentage: number) => RecommendedClassDisplayStatus;
/**
 * Transform API response to table item format
 * @param item - RecommendedClass history item from API response
 * @returns Formatted recommendedClass for table display
 */
export declare const transformRecommendedClassToTableItem: (item: RecommendedClassHistoryItem) => RecommendedClassTableItem;
/**
 * Handle errors during recommendedClass fetch
 * @param error - Error object
 * @returns Error message for UI display
 */
export declare const handleRecommendedClassFetchError: (error: unknown) => string;
/**
 * Factory function to create useRecommendedLessonsHistory hook
 *
 * @param fetchRecommendedClassHistory - Function to fetch recommendedClass from API
 * @returns Hook for managing recommended lessons history
 *
 * @example
 * ```tsx
 * // In your app setup
 * const fetchRecommendedClassHistory = async (filters) => {
 *   const response = await api.get('/recommended-class/history', { params: filters });
 *   return response.data;
 * };
 *
 * const useRecommendedClassHistory = createUseRecommendedLessonsHistory(fetchRecommendedClassHistory);
 *
 * // In your component
 * const { recommendedClass, loading, error, pagination, fetchRecommendedClass } = useRecommendedClassHistory();
 * ```
 */
export declare const createUseRecommendedLessonsHistory: (fetchRecommendedClassHistory: (filters?: RecommendedClassHistoryFilters) => Promise<RecommendedClassHistoryApiResponse>) => () => UseRecommendedLessonsHistoryReturn;
/**
 * Alias for createUseRecommendedLessonsHistory
 */
export declare const createRecommendedLessonsHistoryHook: (fetchRecommendedClassHistory: (filters?: RecommendedClassHistoryFilters) => Promise<RecommendedClassHistoryApiResponse>) => () => UseRecommendedLessonsHistoryReturn;
//# sourceMappingURL=useRecommendedLessons.d.ts.map