/** * Read-model record readers. * * Centralizes read-model record projection over `WorkspaceReadModel` subject * rows. */ import * as Effect from "effect/Effect"; import type * as Path from "effect/Path"; import type { AppError } from "../app-error/index.js"; import { type InstallableExtensionType } from "../extensions/index.js"; import type { DesiredStateGraph } from "./desired-state-graph.js"; import type { LockfileReadError, SettingsReadError } from "./read-model/errors.js"; import { type ExtensionInventory } from "./read-model/extensions/inventory.js"; import type { WorkspaceReadModel } from "./read-model/service.js"; import type { ReadModelRecordRow } from "./read-model-record-types.js"; type WorkspaceManagedExtensionType = InstallableExtensionType; type ReadScopedContext = (f: (scoped: WorkspaceReadModel) => Effect.Effect) => Effect.Effect; export interface ReadModelRecordReaders { readonly getInventory: (options: { readonly type?: InstallableExtensionType; }) => Effect.Effect; readonly getReadModelRecordRows: (type: WorkspaceManagedExtensionType) => Effect.Effect, AppError>; readonly getExtensionInventory: (type: WorkspaceManagedExtensionType, options: { readonly agents?: ReadonlyArray; }) => Effect.Effect; } export declare const makeReadModelRecordReaders: (args: { readonly baseDir: string; readonly path: Path.Path; readonly readScopedContext: ReadScopedContext; readonly getDesiredStateGraph: () => Effect.Effect; }) => ReadModelRecordReaders; export {}; //# sourceMappingURL=read-model-record-readers.d.ts.map