import { ApiPaginationRequestWithQuery } from "@/validations/mutual/api/requests/validations";

interface TableProps {
  data: any;
  orgData: any;
  columns: string[];
  translations?: Record<string, string>;
  redirectUrls?: Record<string, Record<string, React.ReactNode>>;
  setSelectedRow?: React.Dispatch<React.SetStateAction<any>>;
}

interface TableComponentProps {
  urls: Record<string, string>;
  schemas: Record<string, any>;
  translations: Record<string, string>;
  columns: Record<string, any>;
  redirectUrls: Record<string, Record<string, React.ReactNode>>;
  initPagination?: ApiPaginationRequestWithQuery;
  setSelectedRow?: React.Dispatch<React.SetStateAction<any>>;
  RenderListChangeSize?: React.ReactNode;
}

interface TableCardProps {
  data: any;
  columns: string[];
  translations?: Record<string, string>;
}

interface SearchProps {
  pagination: any;
  setPagination: (pagination: any) => void;
}

export type { TableProps, TableComponentProps, TableCardProps, SearchProps };
