import { z } from 'zod'; import { type Page, type PageNode } from '../contracts/declarative-control'; import { type JsonValue } from '../contracts/common'; export declare const PageComponentDefinitionSchema: z.ZodObject<{ root: z.ZodType>; inputs: z.ZodOptional>; default: z.ZodOptional>>; }, z.core.$strict>>>; slots: z.ZodOptional>; }, z.core.$strict>; export type PageComponentDefinition = z.infer; export type PageCompositionNode = PageNode | { id: string; use: string; inputs?: Record; slots?: Record; }; export declare const PageCompositionSchema: z.ZodObject<{ contract: z.ZodLiteral<"PageComposition">; schemaVersion: z.ZodLiteral<1>; page: z.ZodRecord; components: z.ZodRecord>; inputs: z.ZodOptional>; default: z.ZodOptional>>; }, z.core.$strict>>>; slots: z.ZodOptional>; }, z.core.$strict>>; body: z.ZodType>; }, z.core.$strict>; /** Reusable presentation trees with explicit inputs/slots; business state and operations stay in Page. */ export declare function compilePageComposition(input: unknown): Page; //# sourceMappingURL=page-composition.d.ts.map