/** * Classification of a UI component by its portability. * * - `sandboxed` — pure React + `@ggui-ai/design` primitives. Portable, * publishable, runs in any ggui rendering context. * - `fullstack` — uses adapters (`@ggui-ai/mcp-apps-react` hooks, server * connectors). Requires a client bundle, app-scoped. * * Colocated with the classifier (`classifyUi`) because that's the * only runtime producer of this value — the `UiManifest` schema in * `@ggui-ai/project-config` imports this vocabulary and validates * against it. */ export type UiClass = 'sandboxed' | 'fullstack'; export interface DangerousPattern { /** Regex to match against source/compiled code. */ pattern: RegExp; /** Human-readable name of the pattern. */ name: string; /** Why this is blocked and what to do instead. */ suggestion: string; } /** * Patterns that are NEVER allowed in sandboxed UI components. * These are security-critical — changes here affect every validation consumer. */ export declare const DANGEROUS_PATTERNS: DangerousPattern[]; /** * Classify a component as sandboxed or fullstack based on its imports. * * - **sandboxed**: Pure React + @ggui-ai/design primitives. Portable, publishable. * - **fullstack**: Uses @ggui-ai/wire, @ggui-ai/mcp-apps-react, or @app/components. Private. * * Works on both source (.tsx) and compiled (.js) code. */ export declare function classifyUi(code: string): UiClass; //# sourceMappingURL=ui-security.d.ts.map