import type { Scaffold, ScaffoldDiscoveryOptions, ScaffoldProvider, ScaffoldTransformer } from './types.js'; /** * Options for creating a scaffold registry */ export interface ScaffoldRegistryOptions { /** * Override the built-in scaffolds directory. Useful for bundled environments * (e.g. VS Code extensions) where the SDK's data files are copied to a * different location. Defaults to the SDK's own `data/scaffolds/` directory. */ builtInScaffoldsDir?: string; } /** * Scaffold registry for discovering and managing scaffolds */ export declare class ScaffoldRegistry { private providers; private transformers; private scaffoldCache; private readonly builtInScaffoldsDir; constructor(options?: ScaffoldRegistryOptions); /** * Add scaffold providers to the registry for discovery. * Providers are appended to the existing list and evaluated in priority order. * Clears the cache to ensure new scaffolds are discovered on next query. * @param providers - Array of scaffold providers to add */ addProviders(providers: ScaffoldProvider[]): void; /** * Add scaffold transformers to the registry. * Transformers are applied to all scaffolds during discovery after deduplication. * Clears the cache to ensure transformers are reapplied on the next getScaffolds() call. * @param transformers - Array of scaffold transformers to add */ addTransformers(transformers: ScaffoldTransformer[]): void; /** * Clear the scaffold cache */ clearCache(): void; /** * Get all scaffolds from all sources * @param options - Discovery options * @returns Array of scaffolds (deduplicated by name, later sources override earlier) */ getScaffolds(options?: ScaffoldDiscoveryOptions): Promise; /** * Get a specific scaffold by ID * @param id - Scaffold ID * @param options - Discovery options * @returns Scaffold or null if not found */ getScaffold(id: string, options?: ScaffoldDiscoveryOptions): Promise; /** * Search scaffolds by query * @param query - Search query * @param options - Additional discovery options * @returns Matching scaffolds */ searchScaffolds(query: string, options?: ScaffoldDiscoveryOptions): Promise; } /** * Create a new scaffold registry instance * * @param options - Registry options (e.g. override built-in scaffolds directory) */ export declare function createScaffoldRegistry(options?: ScaffoldRegistryOptions): ScaffoldRegistry;