import { LearnWorldsBaseAction } from '../learnworlds-base.action.js';
import { ActionParam, ActionResultSimple, RunActionParams } from '@memberjunction/actions-base';
import { UserInfo } from '@memberjunction/core';
import { BulkDataParams, LearnWorldsSyncPayload } from '../interfaces/index.js';
/**
 * Orchestrates bulk data retrieval from all LearnWorlds retrieval actions
 * into a single LearnWorldsSyncPayload for downstream consumers.
 */
export declare class GetLearnWorldsBulkDataAction extends LearnWorldsBaseAction {
    /**
     * Retrieves bulk data from LearnWorlds, orchestrating multiple retrieval actions.
     * Each data type is optional and controlled via Include* boolean params.
     * Partial failures are collected into errors without aborting the whole operation.
     */
    GetBulkData(params: BulkDataParams, contextUser: UserInfo): Promise<LearnWorldsSyncPayload>;
    /**
     * If no Include* flags are explicitly set, include everything by default.
     */
    private shouldIncludeAll;
    /**
     * Helper to determine if a data type should be fetched.
     */
    private shouldFetch;
    /**
     * Fetch users, collecting errors on failure.
     */
    private fetchUsers;
    /**
     * Fetch courses, collecting errors on failure.
     */
    private fetchCourses;
    /**
     * Fetch bundles, collecting errors on failure.
     */
    private fetchBundles;
    /**
     * Fetch enrollments for all provided users with controlled concurrency.
     * Processes users in batches of CONCURRENCY_LIMIT to avoid overwhelming the API.
     */
    private fetchEnrollmentsForUsers;
    /**
     * Fetch learning progress for all provided users with controlled concurrency.
     * Processes users in batches of CONCURRENCY_LIMIT to avoid overwhelming the API.
     */
    private fetchProgressForUsers;
    /**
     * Fetch certificates, collecting errors on failure.
     */
    private fetchCertificates;
    /**
     * Fetch quiz results, collecting errors on failure.
     */
    private fetchQuizResults;
    /**
     * Adds a SyncError to the errors collection from a caught exception.
     */
    private collectError;
    /**
     * Framework entry point that delegates to the typed public method
     */
    protected InternalRunAction(params: RunActionParams): Promise<ActionResultSimple>;
    /**
     * Extract typed params from the generic ActionParam array
     */
    private extractBulkDataParams;
    /**
     * Builds a human-readable summary of data counts in the payload.
     */
    private buildDataCountsSummary;
    /**
     * Define the parameters this action expects
     */
    get Params(): ActionParam[];
    /**
     * Metadata about this action
     */
    get Description(): string;
}
//# sourceMappingURL=get-bulk-data.action.d.ts.map