import { LearnWorldsBaseAction } from '../learnworlds-base.action';
import { ActionParam, ActionResultSimple, RunActionParams } from '@memberjunction/actions-base';
/**
 * Interface for LearnWorlds user detailed information
 */
export interface LearnWorldsUserDetails {
    id: string;
    email: string;
    username: string;
    firstName?: string;
    lastName?: string;
    fullName?: string;
    status: 'active' | 'inactive' | 'suspended';
    role: string;
    createdAt: Date;
    lastLoginAt?: Date;
    avatarUrl?: string;
    bio?: string;
    location?: string;
    timezone?: string;
    language?: string;
    phone?: string;
    tags?: string[];
    customFields?: Record<string, any>;
    totalCourses: number;
    completedCourses: number;
    inProgressCourses: number;
    notStartedCourses: number;
    totalTimeSpent: number;
    averageCompletionRate: number;
    lastActivityDate?: Date;
    enrollments?: UserEnrollment[];
    totalCertificates: number;
    totalBadges: number;
    points?: number;
    level?: string;
    emailNotifications?: boolean;
    twoFactorEnabled?: boolean;
    agreedToTerms?: boolean;
    marketingConsent?: boolean;
}
/**
 * Interface for user enrollment in a course
 */
export interface UserEnrollment {
    courseId: string;
    courseTitle: string;
    enrolledAt: Date;
    status: 'active' | 'completed' | 'expired' | 'suspended';
    progress: number;
    completedAt?: Date;
    expiresAt?: Date;
    lastAccessedAt?: Date;
    timeSpent: number;
    certificateUrl?: string;
    grade?: number;
}
/**
 * Action to retrieve detailed information about a specific LearnWorlds user
 */
export declare class GetLearnWorldsUserDetailsAction extends LearnWorldsBaseAction {
    /**
     * Description of the action
     */
    get Description(): string;
    /**
     * Main execution method
     */
    protected InternalRunAction(params: RunActionParams): Promise<ActionResultSimple>;
    /**
     * Map LearnWorlds user data to detailed interface
     */
    private mapUserDetails;
    /**
     * Map enrollment data
     */
    private mapEnrollment;
    /**
     * Calculate enrollment statistics
     */
    private calculateEnrollmentStats;
    /**
     * Merge additional statistics
     */
    private mergeStatistics;
    /**
     * Create a summary of user information
     */
    private createUserSummary;
    /**
     * Define the parameters for this action
     */
    get Params(): ActionParam[];
}
//# sourceMappingURL=get-user-details.action.d.ts.map