import { UISchema } from '../types'; import { PlatformType, ComponentRegistry } from './component-registry'; /** * Options for schema generation */ export interface SchemaGeneratorOptions { /** Include component examples in generated schema */ includeExamples?: boolean; /** Include deprecated components */ includeDeprecated?: boolean; /** Target platform filter */ platform?: PlatformType; } /** * Property schema definition in generated schema */ export interface PropSchemaDefinition { /** Property type */ type: string; /** Whether required */ required: boolean; /** Default value */ default?: unknown; /** Description */ description?: string; /** Enum values */ enum?: string[]; } /** * Event definition in generated schema */ export interface EventDefinition { /** Event name */ name: string; /** Event description */ description?: string; /** Event payload type */ payloadType?: string; } /** * Slot definition in generated schema */ export interface SlotDefinition { /** Slot name */ name: string; /** Slot description */ description?: string; } /** * Generated schema for a component */ export interface GeneratedSchema { /** Component name */ component: string; /** Component version */ version: string; /** Component category */ category?: string; /** Component description */ description?: string; /** Props definitions */ props: Record; /** Event definitions */ events: EventDefinition[]; /** Slot definitions */ slots?: SlotDefinition[]; /** Example schemas */ examples?: UISchema[]; /** Supported platforms */ platforms?: PlatformType[]; /** Whether deprecated */ deprecated?: boolean; /** Deprecation message */ deprecationMessage?: string; } /** * Schema Generator class * * Generates A2UI Schema from component definitions with support for: * - Single component generation * - Batch generation * - On-demand loading with caching */ export declare class SchemaGenerator { private registry; constructor(registry: ComponentRegistry); /** * Generate schema for a single component * @param componentName - Name of the component * @param options - Generation options * @returns Generated schema or undefined if not found */ generate(componentName: string, options?: SchemaGeneratorOptions): GeneratedSchema | undefined; /** * Generate schemas for all components * @param options - Generation options * @returns Map of component name to generated schema */ generateAll(options?: SchemaGeneratorOptions): Record; /** * Load schema on-demand with caching * @param componentName - Name of the component * @returns Promise resolving to generated schema */ loadOnDemand(componentName: string): Promise; /** * Clear schema cache */ clearCache(): void; /** * Get cached schema count */ getCacheSize(): number; } /** * Create a schema generator for a registry */ export declare function createSchemaGenerator(registry: ComponentRegistry): SchemaGenerator; //# sourceMappingURL=schema-generator.d.ts.map