import type { ActivityModelTableItem, ActivityModelFilters, ActivityModelsApiResponse, ActivityUserFilterData } from '../../../types/activitiesHistory';
import type { SubjectEnum } from '../../../enums/SubjectEnum';
/**
 * Props for the ModelsTab component
 */
export interface ModelsTabProps {
    /** 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 model button is clicked */
    onCreateModel: () => 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.
     */
    subjectsMap?: Map<string, string>;
}
/**
 * ModelsTab component
 * Displays activity models with filters, pagination, and CRUD actions.
 * Uses the shared ModelsTabBase component for common functionality.
 */
export declare const ModelsTab: ({ fetchActivityModels, deleteActivityModel, onCreateModel, onSendActivity, onEditModel, emptyStateImage, noSearchImage, mapSubjectNameToEnum, userFilterData, subjectsMap, }: ModelsTabProps) => import("react/jsx-runtime").JSX.Element;
export default ModelsTab;
//# sourceMappingURL=ModelsTab.d.ts.map