/** * Element inspector ("click-to-edit") runtime that lives inside the sandboxed * iframe. The Lightdash parent window enables it via postMessage; on click, * this module captures a human-readable label for the clicked element and * posts it back. The parent inserts that label as a pill at the prompt * editor cursor so the user can compose targeted edits like: * * [button "Total Revenue" @src/Toolbar.tsx:42] make this blue * [div "$2.4M" @src/Dashboard.tsx:88] rename to Net Revenue * * Claude opens the file at `:` directly. When the loc is missing * (DOM node injected outside JSX, or pre-transform build), it falls back to * grepping `/app/src/` for the quoted text. */ export type InspectSelectedMessage = { type: 'lightdash:inspect:selected'; label: string; }; /** * Announced by the iframe SDK on mount so the parent can detect that the * inspector is wired up. Older SDKs (loaded by resumed sandboxes) never * send this, so the parent leaves the Inspect button hidden for them. */ export type InspectAvailableMessage = { type: 'lightdash:inspect:available'; }; /** * Mounts the inspector. Listens for `lightdash:inspect:enable` / * `lightdash:inspect:disable` from the parent window and posts back a * `lightdash:inspect:selected` event when the user clicks an element while * inspect mode is active. Idempotent — safe to call multiple times. */ export declare function mountInspector(parent: Window): void;