import { type CapabilityId, type FeatureId, type PluginId, type RuntimeSnapshot } from '@zhin.js/plugin-runtime'; import type { FallbackInvalidation } from './invalidation-planner.js'; import type { ModuleRuntime } from './module-runtime.js'; import type { RuntimeGenerationModel } from './runtime-generation.js'; export type CapabilityDelta = ReadonlyMap>; export interface ConventionCapabilityDelta { readonly capabilities: CapabilityDelta; readonly unresolved: readonly FallbackInvalidation[]; } /** * Resolves unowned filesystem paths through mounted Feature conventions. * Conventions are asked to enumerate sources only: definition modules stay * untouched until SlotGenerationPreparer commits the selected delta. */ export declare class ConventionCapabilityDeltaResolver { #private; private readonly model; private readonly snapshot; constructor(modules: ModuleRuntime, model: RuntimeGenerationModel, snapshot: RuntimeSnapshot); resolve(fallbacks: readonly FallbackInvalidation[], selected: readonly CapabilityId[]): Promise; } export declare function capabilityDeltaFromSlots(snapshot: RuntimeSnapshot, selected: readonly CapabilityId[]): CapabilityDelta; export declare function mergeCapabilityDeltas(...deltas: readonly CapabilityDelta[]): CapabilityDelta; export declare function filterCapabilityDelta(delta: CapabilityDelta, predicate: (owner: PluginId) => boolean): CapabilityDelta; export declare function capabilityDeltaIds(delta: CapabilityDelta): readonly CapabilityId[]; export declare function capabilityOwner(id: CapabilityId): PluginId;