/**
* 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