import type { DesignIRComponent } from './designCompiler.js'; import type { NodeJSON, NodeModel } from './store.js'; type SourceNode = NodeModel | NodeJSON; export interface ImplementationComponentSource { name: string; importPath: string; sourcePath?: string; selected: boolean; } export interface ImplementationSourceMap { declaredFiles: readonly string[]; renderedFiles: readonly string[]; styleFiles: readonly string[]; codeFiles: readonly string[]; components: readonly ImplementationComponentSource[]; selectedFiles: readonly string[]; } /** * Builds the implementation index for one frame from evidence the editor * already owns. These groups deliberately stay separate: * * - declared files are host anchors, not proof that the frame rendered them; * - rendered files are source stamps observed in the imported DOM; * - styles are computed-style ownership stamps; * - components are registry/code-connection boundaries. * * Calling all four "dependencies" would overstate the evidence. A forward * source graph can be added later without changing this frame-local contract. */ export declare function createImplementationSourceMap(input: { root: SourceNode; declaredFiles?: readonly string[]; components?: readonly DesignIRComponent[]; selectedNodeId?: string | null; }): ImplementationSourceMap; export {};