/** * Lifecycle views over `ReadModelRecordRow`. * * `WorkspaceReadModelRecords.rows(type)` returns every row the read model * projects for one extension type, tagged with its lifecycle. Callers that * previously reached for a per-type accessor (`getConfiguredSkills`, * `getInstalledPacks`, …) narrow the same rows here instead, so a new * extension type needs no new accessor. * * @internal */ import type * as Record from "effect/Record"; import type { ReadModelRecordRow } from "./read-model-record-types.js"; /** A row declared in `axm.json`, carrying a concrete source string. */ export type ConfiguredRecordRow = Extract; /** A row installed indirectly — a pack member or a lockfile-only entry. */ export type ImplicitRecordRow = Extract; /** A row observed on disk that no settings or lockfile entry claims. */ export type UnmanagedRecordRow = Extract; /** Configured plus implicit — everything the workspace considers installed. */ export type InstalledRecordRow = ConfiguredRecordRow | ImplicitRecordRow; export declare const isConfiguredRecordRow: (row: ReadModelRecordRow) => row is ConfiguredRecordRow; export declare const isUnmanagedRecordRow: (row: ReadModelRecordRow) => row is UnmanagedRecordRow; export declare const isInstalledRecordRow: (row: ReadModelRecordRow) => row is InstalledRecordRow; export declare const configuredRecordRows: (rows: ReadonlyArray) => ReadonlyArray; export declare const unmanagedRecordRows: (rows: ReadonlyArray) => ReadonlyArray; export declare const installedRecordRows: (rows: ReadonlyArray) => ReadonlyArray; /** * Index rows by workspace name. Later rows win, matching the projection order * where a direct declaration is emitted before any implicit or unmanaged row * for the same name. */ export declare const recordRowsByName: (rows: ReadonlyArray) => Record.ReadonlyRecord; export declare const configuredRowsByName: (rows: ReadonlyArray) => Record.ReadonlyRecord; export declare const installedRowsByName: (rows: ReadonlyArray) => Record.ReadonlyRecord; export declare const unmanagedRowsByName: (rows: ReadonlyArray) => Record.ReadonlyRecord; //# sourceMappingURL=read-model-record-rows.d.ts.map