import { z } from 'zod'; /** * The rendering-context vocabulary — how and where a generated component * will be displayed (ggui#1000, `items[].rendering?` on the bootstrap door). * * ONE vocabulary. It used to exist twice as hand-declared unions * (`@ggui-ai/mcp-server-core` `UiGenerateInput.rendering`, `@ggui-ai/ui-gen` * `RenderingContext`) and nowhere as a schema; a wire that carries it needs * a validator, so it lives here and every consumer derives its type from * this schema — never a second spelling, never a narrower one at a door. * * Parties and obligations: a SENDER (a host announcing where the * component renders; a provisioning caller pre-minting for a chip) sends * `{ shell, device, viewport? }` from this vocabulary and nothing else; a * RECEIVER validates with this schema and answers an invalid value with its * surface's typed refusal (the bootstrap door: `400 invalid_rendering`); * what a lane can JUDGE for a given shell/device (its canvas pair) is that * lane's policy, reported on its receipt — never a trimmed vocabulary. * Absent ⇒ the receiver's default behaviour, unchanged. */ export declare const RENDERING_SHELLS: readonly ["chat", "fullscreen", "partial"]; export declare const RENDERING_DEVICES: readonly ["mobile", "tablet", "desktop", "spatial"]; export type RenderingShell = (typeof RENDERING_SHELLS)[number]; export type RenderingDevice = (typeof RENDERING_DEVICES)[number]; /** Viewport in CSS pixels — both dimensions, finite and positive. */ export declare const renderingViewportSchema: z.ZodObject<{ width: z.ZodNumber; height: z.ZodNumber; }, z.core.$strict>; export declare const renderingContextSchema: z.ZodObject<{ device: z.ZodEnum<{ desktop: "desktop"; mobile: "mobile"; tablet: "tablet"; spatial: "spatial"; }>; shell: z.ZodEnum<{ fullscreen: "fullscreen"; chat: "chat"; partial: "partial"; }>; viewport: z.ZodOptional>; }, z.core.$strict>; export type RenderingContext = z.infer; //# sourceMappingURL=rendering-context.d.ts.map