import { REPORT_MODAL_VARIANT } from '../types/common';
/**
 * Time + percentage pair returned by the backend for platform/hours breakdowns.
 */
export interface AccessReportTimePercentage {
    time: string;
    percentage: number;
}
/**
 * User context returned by the backend inside every access report response.
 */
export interface AccessReportUser {
    id: string;
    name: string;
    profileType: string;
    school: string;
    group: string | null;
    class: string | null;
    year: number;
}
/**
 * Platform access breakdown — web vs mobile.
 */
export interface AccessReportByPlatform {
    web: AccessReportTimePercentage;
    mobile: AccessReportTimePercentage;
}
/**
 * Full 200 response for STUDENT access report.
 * Mirrors backend shape from GET /access-report/access/user/:userId (student variant).
 */
export interface AccessReportStudentData {
    user: AccessReportUser;
    accessData: {
        totalTime: string;
        activitiesTime: string;
        contentTime: string;
        recommendedLessonsTime: string;
        simulationsTime: string;
        questionnairesTime: string;
        accessCount: number;
        lastAccess: string | null;
    };
    accessByPlatform: AccessReportByPlatform;
    hoursByItem: {
        activities: AccessReportTimePercentage;
        content: AccessReportTimePercentage;
        simulations: AccessReportTimePercentage;
        questionnaires: AccessReportTimePercentage;
        recommendedLessons: AccessReportTimePercentage;
    };
}
/**
 * Full 200 response for TEACHER / UNIT_MANAGER / REGIONAL_MANAGER access report.
 * Mirrors backend shape from GET /access-report/access/user/:userId (professional variant).
 */
export interface AccessReportProfessionalData {
    user: AccessReportUser;
    accessData: {
        totalTime: string;
        activitiesTime: string;
        recommendedLessonsTime: string;
        accessCount: number;
        lastAccess: string | null;
    };
    accessByPlatform: AccessReportByPlatform;
    hoursByItem: {
        activities: AccessReportTimePercentage;
        recommendedLessons: AccessReportTimePercentage;
    };
}
/** @deprecated Use {@link REPORT_MODAL_VARIANT} instead. Re-exported for backwards compatibility. */
export { REPORT_MODAL_VARIANT as AccessReportModalVariant } from '../types/common';
/**
 * Access count by period item for bar chart
 */
export interface AccessCountByPeriodItem {
    label: string;
    count: number;
}
interface AccessReportModalBaseProps {
    isOpen: boolean;
    onClose: () => void;
    /** Modal title (default: "Relatório de acesso") */
    title?: string;
    loading?: boolean;
    error?: string | null;
    /** Optional access count by period data for rendering the access count chart */
    accessCountByPeriod?: AccessCountByPeriodItem[];
}
type AccessReportModalStudentProps = {
    variant: REPORT_MODAL_VARIANT.STUDENT;
    data: AccessReportStudentData | null;
};
type AccessReportModalProfessionalProps = {
    variant: REPORT_MODAL_VARIANT.PROFESSIONAL;
    data: AccessReportProfessionalData | null;
};
export type AccessReportModalProps = AccessReportModalBaseProps & (AccessReportModalStudentProps | AccessReportModalProfessionalProps);
/**
 * AccessReportModal component
 *
 * Displays a modal with access data for a user.
 *
 * Two variants driven by the profile type:
 * - `STUDENT` — 6 metric boxes (totalTime, contentTime, recommendedLessonsTime,
 *   simulationsTime, accessCount, lastAccess) + platform pie chart + hours-by-item pie chart
 * - `PROFESSIONAL` — 3 metric boxes (totalTime, accessCount, lastAccess) +
 *   platform pie chart only (no hours-by-item breakdown for professionals)
 *
 * @example
 * ```tsx
 * <AccessReportModal
 *   isOpen={isOpen}
 *   onClose={() => setIsOpen(false)}
 *   variant={REPORT_MODAL_VARIANT.STUDENT}
 *   data={apiResponse.data}
 * />
 * ```
 */
export declare const AccessReportModal: ({ isOpen, onClose, title, loading, error, accessCountByPeriod, ...variantProps }: AccessReportModalProps) => import("react/jsx-runtime").JSX.Element;
export default AccessReportModal;
//# sourceMappingURL=AccessReportModal.d.ts.map