import type { CapabilityId, FeatureId, PluginId, RuntimeSnapshot } from '@zhin.js/plugin-runtime'; import type { ModuleWatchRoot } from './module-runtime.js'; import type { ProjectGraph } from './project-graph.js'; export type SourceRole = 'plugin' | 'schema' | 'manifest' | 'feature' | 'capability'; export interface SourceOwnershipRecord { readonly source: string; readonly role: SourceRole; readonly owner: PluginId; readonly capability?: CapabilityId; readonly feature?: FeatureId; } export declare class SourceOwnershipIndex { #private; static empty(): SourceOwnershipIndex; static fromGeneration(graph: ProjectGraph, snapshot: RuntimeSnapshot, featureIdsByPackageRoot: ReadonlyMap): SourceOwnershipIndex; add(record: SourceOwnershipRecord): void; addPackageRoot(packageRoot: string, owner: PluginId): void; recordsFor(source: string): readonly SourceOwnershipRecord[]; ownersForPath(source: string): readonly PluginId[]; watchRoots(): readonly ModuleWatchRoot[]; addWatchRoot(root: ModuleWatchRoot): void; }