import { Course } from "../models/Course";
import { UpdateCoursePayloadDTO } from "../services/CourseService";
interface CourseWithDetails extends Course {
    sectionCount: number;
    lectureCount: number;
}
export interface CourseDetail extends Course {
    sections: {
        id: string;
        title: string;
        description: string;
        orderIndex: number;
        lectures: {
            id: string;
            title: string;
            content: string;
            type: string;
            orderIndex: number;
        }[];
        quiz?: {
            id: string;
            title: string;
            description: string;
            questions: {
                id: string;
                question: string;
                options: string[];
                answer: string;
                explanation: string;
            }[];
        };
    }[];
}
export declare function useCourses(teacherId?: string, apiBaseUrl?: string): {
    courses: CourseWithDetails[];
    isLoading: boolean;
    error: string | null;
    fetchCourses: (forced?: boolean) => Promise<void>;
    fetchCourseDetail: (courseId: string) => Promise<CourseDetail | null>;
    createCourse: (courseData: Partial<Course>) => Promise<Course | null>;
    updateCourse: (courseId: string, courseData: UpdateCoursePayloadDTO) => Promise<CourseDetail | null>;
    deleteCourse: (courseId: string) => Promise<boolean>;
};
export {};
