import type { Fields, Filters, FinalSchemas, GetSchemaFromName, GetSchemaNames, Include, Meta, RecordType, PaginationObject } from "@hatchifyjs/rest-client"; import type { PartialSchema } from "@hatchifyjs/core"; import type { HatchifyReactRest } from "@hatchifyjs/react-rest"; import type { HatchifyDataGridPage, HatchifyDataGridSelectedState, HatchifyDataGridSort, SortObject } from "../presentation/index.js"; export interface DataGridState, TSchemaName extends GetSchemaNames> { data: Array, false, true>>; meta: Meta; fields?: Fields; include?: Include>; filter: Filters; setFilter: (filters: Filters) => void; page: HatchifyDataGridPage["page"]; setPage: HatchifyDataGridPage["setPage"]; sort: HatchifyDataGridSort["sort"]; setSort: HatchifyDataGridSort["setSort"]; selected?: HatchifyDataGridSelectedState; setSelected?: (selected: HatchifyDataGridSelectedState) => void; finalSchemas: FinalSchemas; partialSchemas: TSchemas; schemaName: TSchemaName; } export default function useDataGridState, const TSchemaName extends GetSchemaNames>(finalSchemas: FinalSchemas, partialSchemas: TSchemas, schemaName: TSchemaName, restClient: HatchifyReactRest, { defaultSelected, onSelectedChange, fields, include, defaultPage, defaultSort, alwaysSorted, baseFilter, minimumLoadTime, }?: { defaultSelected?: HatchifyDataGridSelectedState; onSelectedChange?: (selected: HatchifyDataGridSelectedState) => void; fields?: Fields; include?: Include>; defaultPage?: PaginationObject; defaultSort?: SortObject; alwaysSorted?: boolean; baseFilter?: Filters; minimumLoadTime?: number; }): DataGridState;