import type { Surface } from './runner.js'; export type DiscoveredComponent = { /** Stable surface key, e.g. `component-dashboard-pr-card`. */ key: string; /** Path relative to `cwd`, using `/` separators. */ path: string; }; export type DiscoverComponentFilesOptions = { /** Project root. Defaults to the current working directory. */ cwd?: string; /** Component roots to scan, relative to `cwd` unless absolute. */ roots: string[]; /** Capture-key prefix. Defaults to `component`. */ prefix?: string; /** File extensions to include. Defaults to common JS + framework component files. */ extensions?: string[]; /** Extra regexes matched against the cwd-relative path. */ ignore?: RegExp[]; }; export type ComponentCatalogSurfaceOptions = { /** Map a discovered component to the app-owned catalog URL that renders it. */ url?: (component: DiscoveredComponent) => string; /** Viewport widths to apply to every generated component surface. */ widths?: number[]; /** Viewport height to apply to every generated component surface. */ height?: Surface['height']; /** Selectors ignored on every generated component surface. */ ignore?: string[]; }; /** * Discover component files so apps can make StyleProof coverage explicit: * map these keys to a Storybook/Ladle/custom catalog route, then pass the keys * to `expected`. StyleProof inventories files; the app still owns rendering * because props, providers, data, portals, and framework bootstraps are app-specific. */ export declare function discoverComponentFiles(options: DiscoverComponentFilesOptions): DiscoveredComponent[]; /** * Turn discovered components into StyleProof surfaces for an app-owned catalog * route. Default URL: `/styleproof/components/`. */ export declare function componentCatalogSurfaces(components: DiscoveredComponent[], options?: ComponentCatalogSurfaceOptions): Surface[];