import { LearnWorldsBaseAction } from '../learnworlds-base.action';
import { ActionParam, ActionResultSimple, RunActionParams } from '@memberjunction/actions-base';
/**
 * Interface for a LearnWorlds course
 */
export interface LearnWorldsCourse {
    id: string;
    title: string;
    subtitle?: string;
    description?: string;
    shortDescription?: string;
    status: 'published' | 'draft' | 'coming_soon';
    visibility: 'public' | 'private' | 'hidden';
    isActive: boolean;
    isFree: boolean;
    price?: number;
    currency?: string;
    originalPrice?: number;
    discountPercentage?: number;
    categoryId?: string;
    categoryName?: string;
    tags?: string[];
    level?: 'beginner' | 'intermediate' | 'advanced' | 'all';
    language?: string;
    duration?: number;
    thumbnailUrl?: string;
    coverImageUrl?: string;
    promoVideoUrl?: string;
    instructorId?: string;
    instructorName?: string;
    instructorBio?: string;
    instructorAvatarUrl?: string;
    totalUnits: number;
    totalLessons: number;
    totalQuizzes: number;
    totalAssignments: number;
    estimatedDuration?: number;
    totalEnrollments: number;
    activeEnrollments: number;
    completionRate: number;
    averageRating?: number;
    totalReviews?: number;
    createdAt: Date;
    updatedAt: Date;
    publishedAt?: Date;
    enrollmentStartDate?: Date;
    enrollmentEndDate?: Date;
    requiresApproval: boolean;
    hasPrerequisites: boolean;
    prerequisites?: string[];
    certificateAvailable: boolean;
    objectives?: string[];
    targetAudience?: string[];
    requirements?: string[];
}
/**
 * Interface for course catalog summary
 */
export interface CourseCatalogSummary {
    totalCourses: number;
    publishedCourses: number;
    draftCourses: number;
    freeCourses: number;
    paidCourses: number;
    categoryCounts: Record<string, number>;
    levelCounts: Record<string, number>;
    languageCounts: Record<string, number>;
    enrollmentStats: {
        totalEnrollments: number;
        averageEnrollmentsPerCourse: number;
        mostPopularCourses: Array<{
            id: string;
            title: string;
            enrollments: number;
        }>;
    };
    priceStats: {
        averagePrice: number;
        minPrice: number;
        maxPrice: number;
        currency: string;
    };
}
/**
 * Action to retrieve courses from LearnWorlds LMS
 */
export declare class GetLearnWorldsCoursesAction extends LearnWorldsBaseAction {
    /**
     * Description of the action
     */
    get Description(): string;
    /**
     * Main execution method
     */
    protected InternalRunAction(params: RunActionParams): Promise<ActionResultSimple>;
    /**
     * Map LearnWorlds course data to our interface
     */
    private mapLearnWorldsCourse;
    /**
     * Map course status
     */
    private mapCourseStatus;
    /**
     * Map course visibility
     */
    private mapCourseVisibility;
    /**
     * Map course level
     */
    private mapCourseLevel;
    /**
     * Calculate discount percentage
     */
    private calculateDiscountPercentage;
    /**
     * Calculate course catalog summary
     */
    private calculateCourseCatalogSummary;
    /**
     * Define the parameters for this action
     */
    get Params(): ActionParam[];
}
//# sourceMappingURL=get-courses.action.d.ts.map