import type { FinalSchemas, GetSchemaFromName, GetSchemaNames, RecordType } from "@hatchifyjs/rest-client"; import type { PartialSchema } from "@hatchifyjs/core"; import type { DataValue, DataValueComponent, HeaderProps, HeaderValueComponent } from "../../presentation/interfaces.js"; export type RenderData, TSchemaName extends GetSchemaNames> = ({ record, }: { record: RecordType, false, true>; }) => JSX.Element; export type RenderHeader = (headerArgs: HeaderProps) => JSX.Element; export type RenderDataValue, TSchemaName extends GetSchemaNames> = ({ value, record, }: { value: DataValue; record: RecordType, false, true>; }) => JSX.Element; export type ExtraColumnProps, TSchemaName extends GetSchemaNames> = { allSchemas: FinalSchemas; schemaName: string; sortable?: boolean; prepend?: boolean; label?: string; field?: never; } & { renderDataValue?: RenderData; DataValueComponent?: DataValueComponent; renderHeaderValue?: RenderHeader; HeaderValueComponent?: HeaderValueComponent; }; export type ReplaceColumnProps, TSchemaName extends GetSchemaNames> = { allSchemas: FinalSchemas; schemaName: TSchemaName; sortable?: boolean; prepend?: never; label?: string; field: keyof GetSchemaFromName["attributes"] | keyof GetSchemaFromName["relationships"] | "id"; } & { renderDataValue?: RenderDataValue; DataValueComponent?: DataValueComponent; renderHeaderValue?: RenderHeader; HeaderValueComponent?: HeaderValueComponent; }; export declare function HatchifyColumn, const TSchemaName extends GetSchemaNames>(props: ExtraColumnProps | ReplaceColumnProps): null; export declare namespace HatchifyColumn { var displayName: string; }