import type { ComponentRegistry, RegistryEntry, RegistryPropValue } from './registry.js'; import type { NodeModel, PageModel } from './store.js'; /** One controllable component instance found in a page tree. */ export interface ComponentInstanceSummary { nodeId: string; componentName: string; /** Display label: childrenText, then a distinguishing prop value, then the ordinal. */ label: string; /** 1-based position among the same component's instances in the page. */ ordinal: number; /** Effective typed prop values — instance props over registry defaults. */ props: Record; /** Registry props that are literal-authored on the instance and writable to source. */ sourceWritableProps: readonly string[]; } /** All instances of one component in a page, in document order. */ export interface ComponentInstanceGroup { componentName: string; instances: ComponentInstanceSummary[]; } /** Registry props whose authored JSX literal can safely take a vocabulary value. */ export declare function sourceWritableRegistryProps(node: Pick, entry: Pick | undefined): string[]; /** * Enumerates the controllable component instances of a page, grouped by * component in document order. */ export declare function listComponentInstances(page: Pick, registry: ComponentRegistry): ComponentInstanceGroup[];