/**
 * Exam History Types
 *
 * This file contains types related to the exam history feature,
 * including API responses, table items, and filters.
 *
 * Uses /activities/history endpoint with type=PROVA to filter for exams.
 */
/**
 * Filter option type for exam filters
 */
export interface ExamFilterOption {
    id: string;
    name: string;
    [key: string]: unknown;
}
/**
 * Exam status enum - specific for PROVA type activities
 * Manually set by professor (different from automatic activity status)
 */
export declare enum ExamStatus {
    AGENDADA = "AGENDADA",
    EM_ANDAMENTO = "EM_ANDAMENTO",
    FINALIZADA = "FINALIZADA",
    CANCELADA = "CANCELADA"
}
/**
 * Exam display status for UI
 */
export declare enum ExamDisplayStatus {
    AGENDADA = "Agendada",
    EM_ANDAMENTO = "Em andamento",
    FINALIZADA = "Finalizada",
    CANCELADA = "Cancelada"
}
/**
 * Map API exam status to display status
 * @param apiStatus - Status from backend API
 * @returns Formatted status for UI display
 */
export declare const mapExamStatusToDisplay: (apiStatus: ExamStatus) => ExamDisplayStatus;
/**
 * Filter options extracted from exams API responses
 */
export interface ExamApiFilterOptions {
    schools: ExamFilterOption[];
    classes: ExamFilterOption[];
    subjects: ExamFilterOption[];
    schoolYears: ExamFilterOption[];
}
/**
 * Generic entity reference with id and name
 */
type EntityRef = {
    id: string;
    name: string;
};
/**
 * Subject object from backend API response
 */
export interface ExamSubject extends EntityRef {
    areaKnowledgeId: string;
}
/**
 * Breakdown item per school/class for an exam response
 */
export interface ExamBreakdownItem {
    school?: EntityRef | null;
    schoolYear?: EntityRef | null;
    class?: EntityRef | null;
    totalStudents: number;
    answeredStudents: number;
    completionPercentage: number;
}
/**
 * Exam history response from backend API /exams/history
 */
export interface ExamHistoryResponse {
    id: string;
    title: string;
    startDate: string | null;
    status: ExamStatus;
    completionPercentage: number;
    questionCount: number;
    createdAt: string;
    subject: ExamSubject | null;
    creator: EntityRef | null;
    totalStudents?: number;
    answeredStudents?: number;
    breakdown?: ExamBreakdownItem[];
}
/**
 * Exam table item interface for exams list table
 *
 * Columns:
 * - startDate: Data da prova (inicio)
 * - title: Titulo
 * - school: Escola
 * - class: Turma
 * - status: Status (Agendada, Em andamento, Finalizada, Cancelada)
 * - questionCount: Questoes
 * - createdAt: Criada em
 * - completionPercentage: Conclusao
 */
export interface ExamTableItem extends Record<string, unknown> {
    id: string;
    startDate: string;
    title: string;
    school: string;
    class: string;
    status: ExamDisplayStatus;
    questionCount: number;
    createdAt: string;
    completionPercentage: number;
}
/**
 * Exams history API complete response from /activities/history endpoint with type=PROVA
 */
export interface ExamsHistoryApiResponse {
    message: string;
    data: {
        activities: ExamHistoryResponse[];
        pagination: {
            total: number;
            page: number;
            limit: number;
            totalPages: number;
        };
    };
}
/**
 * Exam history filters for API query parameters
 */
export interface ExamHistoryFilters {
    page?: number;
    limit?: number;
    status?: ExamStatus;
    search?: string;
    startDate?: string;
    subjectId?: string;
    schoolId?: string;
    classId?: string;
    sortBy?: 'startDate' | 'title' | 'completionPercentage' | 'createdAt';
    sortOrder?: 'asc' | 'desc';
}
/**
 * Exam pagination interface
 */
export interface ExamPagination {
    total: number;
    page: number;
    limit: number;
    totalPages: number;
}
export {};
//# sourceMappingURL=examsHistory.d.ts.map