import type { SubjectEnum } from '../../enums/SubjectEnum';
import type { ActivityTableItem, ActivityHistoryFilters, ActivitiesHistoryApiResponse, ActivityUserFilterData, ActivityModelTableItem, ActivityModelFilters, ActivityModelsApiResponse } from '../../types/activitiesHistory';
/**
 * Props for the ActivitiesHistory component
 */
export interface ActivitiesHistoryProps {
    /** Function to fetch activities history from API */
    fetchActivitiesHistory: (filters?: ActivityHistoryFilters) => Promise<ActivitiesHistoryApiResponse>;
    /** Function to fetch activity models from API */
    fetchActivityModels: (filters?: ActivityModelFilters) => Promise<ActivityModelsApiResponse>;
    /** Function to delete an activity model */
    deleteActivityModel: (id: string) => Promise<void>;
    /** Callback when create activity button is clicked */
    onCreateActivity: () => void;
    /** Callback when create model button is clicked */
    onCreateModel: () => void;
    /** Callback when a history row is clicked */
    onRowClick: (row: ActivityTableItem) => void;
    /** Callback when send activity button is clicked on a model */
    onSendActivity?: (model: ActivityModelTableItem) => void;
    /** Callback when edit model button is clicked */
    onEditModel?: (model: ActivityModelTableItem) => void;
    /** Image for empty state */
    emptyStateImage?: string;
    /** Image for no search results */
    noSearchImage?: string;
    /** Function to map subject name to SubjectEnum */
    mapSubjectNameToEnum?: (subjectName: string) => SubjectEnum | null;
    /** User data for populating filter options */
    userFilterData?: ActivityUserFilterData;
    /**
     * Map of subject IDs to names for models display.
     * IMPORTANT: This Map should be memoized with useMemo in the parent component
     * to avoid unnecessary re-fetches when the MODELS tab is active.
     * @example
     * const subjectsMap = useMemo(() => {
     *   const map = new Map();
     *   subjects.forEach(s => map.set(s.id, s.name));
     *   return map;
     * }, [subjects]);
     */
    subjectsMap?: Map<string, string>;
}
/**
 * ActivitiesHistory component
 * Displays activities history with tabs for history, drafts, and models.
 * Each tab is an independent component that manages its own state and data fetching.
 */
export declare const ActivitiesHistory: ({ fetchActivitiesHistory, fetchActivityModels, deleteActivityModel, onCreateActivity, onCreateModel, onRowClick, onSendActivity, onEditModel, emptyStateImage, noSearchImage, mapSubjectNameToEnum, userFilterData, subjectsMap, }: ActivitiesHistoryProps) => import("react/jsx-runtime").JSX.Element;
export default ActivitiesHistory;
//# sourceMappingURL=ActivitiesHistory.d.ts.map