/**
 * Shared Component Props Types
 */
import type { FieldInputProps, FormikProps } from 'formik';
import type { ImageFile } from './entities';

/**
 * Base props for entity Card/List components
 */
export interface EntityCardListBaseProps {
  loading: boolean;
  onDelete: (id: string) => void;
  currentPage: number;
  numPages: number;
  onPageChange: (page: number) => void;
}

/**
 * Pagination component props
 */
export interface PaginationProps {
  currentPage: number;
  numPages: number;
  setCurrentPage: (page: number) => void;
}

/**
 * File picker field props (Formik integration)
 */
export interface FilePickerFieldProps {
  label?: string;
  field: FieldInputProps<ImageFile[] | null>;
  form: FormikProps<Record<string, unknown>>;
  path: string;
  schema?: Record<string, unknown>;
  accept?: string;
}
