import type { EntitySubscribeOptions, TableSubscribeOptions, Subscription } from './core/notifications'; import type { OrderByExpression } from './core/order-by'; import type { SelectFieldMap } from './core/pod-session'; import type { PublicQueryCondition, PublicWhereObject } from './core/query-conditions'; import { PodTable, SolidSchema, type InferInsertData, type InferTableData, type InstantiateTableOptions, type PodColumnBase } from './core/schema'; import type { DataLocation, DiscoverOptions, LocationToTableOptions } from './core/discovery'; import type { FederatedError } from './core/federated'; import { type SolidAuthSession, type SolidDatabase, type SolidDrizzleConfig } from './driver'; type CollectionWhere = PublicWhereObject | PublicQueryCondition; type CollectionOrderBy = PodColumnBase | string | OrderByExpression | 'asc' | 'desc'; export interface PodCollectionQueryOptions = PodTable> { fields?: SelectFieldMap; where?: CollectionWhere; limit?: number; offset?: number; orderBy?: CollectionOrderBy[]; } export declare class PodEntity, TSchema extends Record = Record> { private readonly db; readonly table: TTable; readonly iri: string; constructor(db: SolidDatabase, table: TTable, iri: string); get documentUrl(): string; get fragment(): string | null; get(): Promise | null>; read(): Promise | null>; update(data: Partial, '@id' | 'id'>>): Promise | null>; delete(): Promise; subscribe(options: EntitySubscribeOptions>): Promise<() => void>; } export declare class PodCollection, TSchema extends Record = Record> { private readonly db; readonly table: TTable; constructor(db: SolidDatabase, table: TTable); byIri(iri: string): PodEntity; entity(iri: string): PodEntity; iriFor(record: InferInsertData): string; select(fields?: SelectFieldMap): import("./core/pod-session").SelectQueryBuilder; list(options?: PodCollectionQueryOptions): Promise[]>; first(options?: PodCollectionQueryOptions): Promise | null>; create(record: InferInsertData): Promise | null>; create(records: InferInsertData[]): Promise>>; createMany(records: InferInsertData[]): Promise>>; subscribe(options: TableSubscribeOptions): Promise; } export declare class PodClient = Record> { private readonly db; constructor(db: SolidDatabase); asDrizzle(): SolidDatabase; get query(): { [K in keyof TSchema as TSchema[K] extends PodTable ? K : never]: TSchema[K] extends PodTable ? { findMany; } extends infer T_1 ? { [K_2 in keyof T_1]: T_1[K_2]; } : never>(options?: { where?: PublicWhereObject | PublicQueryCondition; columns?: SelectFieldMap; limit?: number; offset?: number; orderBy?: { column: PodColumnBase | string | OrderByExpression; direction?: "asc" | "desc"; }[] | { column: PodColumnBase | string | OrderByExpression; direction?: "asc" | "desc"; }; with?: Record; }>; }): Promise; findFirst; } extends infer T_1 ? { [K_2 in keyof T_1]: T_1[K_2]; } : never>(options?: { where?: PublicWhereObject | PublicQueryCondition; columns?: SelectFieldMap; limit?: number; offset?: number; orderBy?: { column: PodColumnBase | string | OrderByExpression; direction?: "asc" | "desc"; }[] | { column: PodColumnBase | string | OrderByExpression; direction?: "asc" | "desc"; }; with?: Record; }>; }): Promise; find; } extends infer T_1 ? { [K_2 in keyof T_1]: T_1[K_2]; } : never>(target: string | { [x: string]: unknown; }, options?: { columns?: SelectFieldMap; with?: Record; }>; }): Promise; findById; } extends infer T_1 ? { [K_2 in keyof T_1]: T_1[K_2]; } : never>(id: string, options?: { columns?: SelectFieldMap; with?: Record; }>; }): Promise; findByResource; } extends infer T_1 ? { [K_2 in keyof T_1]: T_1[K_2]; } : never>(target: string | { [x: string]: unknown; }, options?: { columns?: SelectFieldMap; with?: Record; }>; }): Promise; findByLocator; } extends infer T_1 ? { [K_2 in keyof T_1]: T_1[K_2]; } : never>(locator: { [x: string]: unknown; }, options?: { columns?: SelectFieldMap; with?: Record; }>; }): Promise; findByIri; } extends infer T_1 ? { [K_2 in keyof T_1]: T_1[K_2]; } : never>(iri: string, options?: { columns?: SelectFieldMap; with?: Record; }>; }): Promise; count(options?: { where?: PublicWhereObject | PublicQueryCondition; }): Promise; } : never; }; bind>>(schema: SolidSchema, options: InstantiateTableOptions): PodTable; locationToTable(location: DataLocation, options?: LocationToTableOptions): Promise>; discoverTablesFor(rdfClass: string, options?: DiscoverOptions, tableOptions?: LocationToTableOptions): Promise[]>; collection>(table: TTable): PodCollection; entity>(table: TTable, iri: string): PodEntity; init>(...tables: Array): Promise; connect(): Promise; disconnect(): Promise; sparql(query: string): Promise; batch(operations: TOperations): Promise<{ [K in keyof TOperations]: Awaited; }>; getLastFederatedErrors(): FederatedError[]; get discovery(): import("./core/discovery").DataDiscovery; } export declare function pod = Record>(session: SolidAuthSession, config?: SolidDrizzleConfig): PodClient; export {}; //# sourceMappingURL=pod.d.ts.map