export type FieldType = "string" | "number" | "boolean" | "date" | "object" | "array"; export interface FieldDefinition { type: FieldType; required?: boolean; unique?: boolean; default?: any; references?: { model: string; field: string; }; } export interface ModelDefinition { name: string; fields: Record; } export interface Schema { models: ModelDefinition[]; } export interface QueryOptions { where?: Record; include?: string[]; orderBy?: { field: string; direction: "asc" | "desc"; }; skip?: number; limit?: number; select?: Record; } export interface ReactIndexDBClientProps { connect: () => Promise; model: (name: string) => ReactIndexDBModelProps; } export interface ReactIndexDBModelProps { create: (data: Record) => Promise; findMany: (options?: QueryOptions) => Promise; findUnique: (id: any, options?: QueryOptions) => Promise; update: (id: any, data: Record) => Promise; delete: (id: any) => Promise; }