import type { GenericDatabaseReader } from "convex/server"; import * as Context from "effect/Context"; import * as Layer from "effect/Layer"; import * as DatabaseSchema from "./DatabaseSchema"; import type * as DataModel from "./DataModel"; import * as QueryInitializer from "./QueryInitializer"; import * as Table from "./Table"; type IncludedTables = DatabaseSchema.Tables | Table.SystemTables; type IncludedDataModel = DataModel.FromTables>; export interface DatabaseReaderService { readonly table: >>(tableName: TableName) => QueryInitializer.QueryInitializer, TableName, TableName extends keyof Docs ? Docs[TableName] : DataModel.DocumentWithName, TableName>>; } export declare const make: (databaseSchema: DatabaseSchema_, convexDatabaseReader: GenericDatabaseReader>>) => DatabaseReaderService; /** * The tag's _Identifier_ (the Effect requirements-channel type) is * `Docs`-independent so a helper's `R` channel is the same whether or not a * codegen document registry is supplied—this keeps it identical to what * `Handler`/runtime provisioning provide. The tag's _Service_ (what `yield*` * produces) carries `Docs`, so queries resolve to the named doc interfaces. */ export type DatabaseReaderTag = Context.Service, DatabaseReaderService>; export declare const DatabaseReader: () => DatabaseReaderTag; export type DatabaseReader = DatabaseReaderService; export declare const layer: (databaseSchema: DatabaseSchema_, convexDatabaseReader: GenericDatabaseReader>>) => Layer.Layer, never, never>; export {}; //# sourceMappingURL=DatabaseReader.d.ts.map