export declare enum CourseCategory {
    AllCourses = "All Courses",
    ProfessionalDevelopment = "Professional Development",
    SkillsDevelopment = "Skills Development",
    WorkplaceSuccess = "Workplace Success",
    Management = "Management",
    Leadership = "Leadership"
}
export declare enum MimeType {
    PDF = "application/pdf",
    MP4 = "video/mp4",
    PNG = "image/png",
    WEBP = "image/webp",
    JPG = "image/jpeg"
}
export declare enum CourseStatus {
    DRAFT = "Draft",
    ACTIVE = "Active",
    INACTIVE = "Inactive"
}
export interface CourseFileUpload {
    id: string;
    fileName: string;
    size: number | null;
    mimeType: MimeType;
    duration?: number;
    file: File;
    base64Thumbnail?: string;
    signedS3Url?: string;
}
export interface Chapter {
    courseContentId: string;
    title: string;
    priority: number;
    timestamp: number;
    keywords?: string[];
    courseId: string;
    createdAt: string;
    updatedAt: string;
}
export type UploadStatus = 'Pending' | 'Uploaded';
export interface CourseFile {
    courseFileId: string;
    fileName: string;
    signedS3Url?: string;
    size: number | null;
    uploadedAt: string;
    updatedAt: string;
    courseId: string;
    uploadStatus?: UploadStatus;
    base64Thumbnail?: string;
    mimeType?: MimeType;
    duration?: number;
}
export interface Course {
    courseId: string;
    name: string;
    description: string;
    category: CourseCategory;
    tags: string[];
    enrolledUsers?: string[];
    completionRate?: number;
    status: CourseStatus;
    creatorId: number;
    courseFiles?: CourseFile[];
    courseContent: Chapter[];
    videoProgress?: number;
    createdAt: string;
    updatedAt: string;
}
export type CourseListResponse = Array<{
    name: string;
    description: string;
    category: 'All Courses' | 'Professional Development' | 'Skills Development' | 'Workplace Success' | 'Management' | 'Leadership';
    tags: Array<string>;
    courseId: string;
    enrolledUsers: Array<string>;
    status: 'Draft' | 'Active' | 'Inactive';
    createdAt: string;
    updatedAt: string;
}>;
