/** * What each host the Lit devframe runs on can do, in one table. The * definition is told which host it is on and works out the rest here, rather * than assuming Vite and having every other host patch the difference. * * - `vite`: the Vite plugin. Transforms stamp source locations, components * hot-patch, the source overlay is the picker, and the plugin serves its * own open-in-editor endpoint. * - `standalone`: `lit-devtools dev`, for pages outside Vite. The page script * brings its own picker; there are no transforms and no HMR. * - `extension`: the browser extension's in-panel host. As `standalone`, with * no server behind it. * - `snapshot`: a frozen session. No page; what the recording host could do * is replayed from the snapshot. * - `none`: the bare definition (the package's default export, an MCP run) * with no page attached. * * Pure: the definition passes in the facts it can see. */ import type { FeatureSettings } from '../../types/timeline.js'; import type { LitCapabilities } from './protocol.js'; export type HostKind = 'vite' | 'standalone' | 'extension' | 'snapshot' | 'none'; /** What the definition knows when it asks. */ export interface HostFacts { /** A dev session with a page to follow, not a build or a replay. */ live: boolean; /** The resolved plugin settings, when the host has any. */ features?: FeatureSettings | null; /** The host passed Node-only actions (open in editor, export a snapshot). */ nodeActions: boolean; /** * The host can answer `component-docs`: from disk with Node actions, or * from the manifests the page links to. Defaults to `nodeActions`. */ docs?: boolean; /** What the recording host could do, for a replayed session. */ recorded?: Partial; } export interface HostProfile { /** Whether the page has an element picker for the Components tab. */ picker: boolean; capabilities: LitCapabilities; } export declare const hostProfile: (host: HostKind, facts: HostFacts) => HostProfile; //# sourceMappingURL=host-profile.d.ts.map