import type { PaginationPayload, ResourceProps } from 'ra-core'; import { Except } from 'type-fest'; import { LanguageCode } from './locale'; import { Database, Tables, TablesInsert, TablesUpdate } from './supabase'; import type { NonJoinPublicTables, PublicTables } from './supabase-helper'; export declare const fieldsNames: readonly ["created_at", "created_by", "id", "owner_id", "updated_at", "updated_by"]; export type UtilFieldsNames = (typeof fieldsNames)[number]; export type Mode = 'dark' | 'light'; export interface FilterPayload { [k: string]: unknown; } export type AnyString = {} & string; export interface SortType { field: { [K in keyof RecordType]: K extends string ? K : never; }[keyof RecordType]; order: 'ASC' | 'DESC'; } type StringKeys = { [F in keyof RecordType]: F extends string ? F : never; }[keyof RecordType]; export type FilterType = { [k in keyof RecordType]?: { in: string[]; } | string; } | Partial}@gte`, string>> | Partial}@in`, string | string[]>> | Partial}@lte`, string>>; export interface GetListParams { filter: FilterType; meta?: unknown; pagination: PaginationPayload; sort: SortType; } export type RaRecordTable = { [k in PublicTables]: keyof Tables extends string ? Tables extends { id: string; } ? Tables : { id: string; } & Tables : never; }; export type RaInsertRecordTable = { [k in PublicTables]: keyof TablesInsert extends string ? TablesInsert extends { id: string; } ? TablesInsert : { id: string; } & TablesInsert : never; }; export type RaUpdateRecordTable = { [k in PublicTables]: keyof TablesUpdate extends string ? TablesUpdate extends { id: string; } ? TablesUpdate : { id: string; } & TablesUpdate : never; }; export type RecordTables = keyof RaRecordTable; export type InsertRecordTableTables = keyof RaInsertRecordTable; export type UpdateRecordTables = keyof RaUpdateRecordTable; export type RaRecord = RaRecordTable[RecordTables]; export type RaInsertRecord = RaInsertRecordTable[InsertRecordTableTables]; export type RaUpdateRecord = RaUpdateRecordTable[UpdateRecordTables]; export type Nested = { [k in keyof Tables]: k extends string ? `${k}.${LanguageCode}` | k : never; }[keyof Tables]; export type RecordRepresentation = { [K in T]: ((record: Tables) => string) | keyof Tables | Nested; }[T]; export type ResourceControllerComponent = React.ComponentType | React.FC | React.ReactElement; export interface AdminRegistrationService { intent?: 'registration'; name: T; } export interface AdminService extends Except { create?: ResourceControllerComponent; edit?: ResourceControllerComponent; hasList?: boolean; icon?: Icon; intent?: 'route'; list?: ResourceControllerComponent; name: T; recordRepresentation?: RecordRepresentation; show?: ResourceControllerComponent; } export type NoOwnerTables = { [K in keyof Database['public']['Tables']]: 'owner_id' extends keyof Database['public']['Tables'][K]['Row'] ? never : K; }[keyof Database['public']['Tables']]; export {}; //# sourceMappingURL=helpers.d.ts.map