import { LearnWorldsBaseAction } from '../learnworlds-base.action.js';
import { ActionParam, ActionResultSimple, RunActionParams } from '@memberjunction/actions-base';
import { UserInfo } from '@memberjunction/core';
import { GetCoursesParams, GetCoursesResult } from '../interfaces/index.js';
/**
 * Action to retrieve courses from LearnWorlds LMS
 */
export declare class GetLearnWorldsCoursesAction extends LearnWorldsBaseAction {
    /**
     * Description of the action
     */
    get Description(): string;
    /**
     * Typed public method for direct (non-framework) callers.
     * Sets company context, fetches courses, and returns a strongly-typed result.
     * Throws on error.
     */
    GetCourses(params: GetCoursesParams, contextUser: UserInfo): Promise<GetCoursesResult>;
    /**
     * Framework entry-point – thin wrapper around the typed public method.
     */
    protected InternalRunAction(params: RunActionParams): Promise<ActionResultSimple>;
    /**
     * Extract typed params from framework ActionParam[]
     */
    private extractGetCoursesParams;
    /**
     * Build query parameters for the LearnWorlds API request
     */
    private buildQueryParams;
    /**
     * Map LearnWorlds course data to our interface
     */
    private mapLearnWorldsCourse;
    private mapCourseIdentity;
    private mapCoursePricing;
    private mapCourseInstructor;
    private mapCourseContentStats;
    private mapCourseMeta;
    /**
     * 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;
    /**
     * Populate category, level, and language counts in the summary
     */
    private populateCategoryCounts;
    /**
     * Populate enrollment statistics in the summary
     */
    private populateEnrollmentStats;
    /**
     * Populate price statistics in the summary
     */
    private populatePriceStats;
    /**
     * Define the parameters for this action
     */
    get Params(): ActionParam[];
}
//# sourceMappingURL=get-courses.action.d.ts.map