export interface PaginatedResult { rows: T[]; total: number; page: number; perPage: number; lastPage: number; } export interface ListParams { search: string; perPage: number; page: number; sort?: string; order?: "asc" | "desc"; } export interface DataTableFilterOption { label: string; value: string; } export interface DataTableColumn { key: (keyof T & string) | (string & {}); label: string; sortable?: boolean; render?: (value: T[keyof T], row: T) => React.ReactNode; filterOptions?: DataTableFilterOption[]; filterKey?: string; } export interface StatsCard { label: string; value: number | string; description?: string; icon?: React.ReactNode; } export interface BreadcrumbItem { label: string; href?: string; }