import type { CategoryConfig } from '../../CheckBoxGroup/index';
export type { CategoryConfig, Item } from '../../CheckBoxGroup/index';
/**
 * Form data structure for sending lesson
 */
export interface SendLessonFormData {
    /** Lesson title (Step 1) */
    title: string;
    /** Notification message (Step 1) */
    notification?: string;
    /** Array of students to send lesson to (Step 2) */
    students: Array<{
        studentId: string;
        userInstitutionId: string;
    }>;
    /** Start date in YYYY-MM-DD format (Step 3) */
    startDate: string;
    /** Start time in HH:MM format (Step 3) */
    startTime: string;
    /** End date in YYYY-MM-DD format (Step 3) */
    finalDate: string;
    /** End time in HH:MM format (Step 3) */
    finalTime: string;
    /** Whether attached activities can be retried by the student.
     *  Only relevant when the model has activity drafts attached. */
    canRetry?: boolean;
}
/**
 * Modal props
 */
export interface SendLessonModalProps {
    /** Controls modal visibility */
    isOpen: boolean;
    /** Callback when modal is closed */
    onClose: () => void;
    /** Callback when lesson is submitted */
    onSubmit: (data: SendLessonFormData) => Promise<void>;
    /** Recipient categories configuration (same format as CheckboxGroup) */
    categories: CategoryConfig[];
    /** Callback when categories change (optional - for controlled state) */
    onCategoriesChange?: (categories: CategoryConfig[]) => void;
    /** Loading state for submit button */
    isLoading?: boolean;
    /** Callback when submission fails (optional - if not provided, error propagates) */
    onError?: (error: unknown) => void;
    /** Modal title for display */
    modalTitle?: string;
    /** When true, render the "Permitir refazer?" radio on step 3.
     *  Caller decides based on whether the selected model has any
     *  activity drafts attached. Defaults to false (no radio shown). */
    hasAttachedActivities?: boolean;
}
/**
 * Step validation errors
 */
export interface StepErrors {
    title?: string;
    students?: string;
    startDate?: string;
    startTime?: string;
    finalDate?: string;
    finalTime?: string;
}
/**
 * Step state for stepper
 */
export type StepState = 'pending' | 'current' | 'completed';
/**
 * Step configuration
 */
export interface StepConfig {
    label: string;
    state: StepState;
}
//# sourceMappingURL=types.d.ts.map