import type { FragmentDefinition } from './types';
/**
 * Central registry of all available fragments.
 * Fragments are registered lazily on first access.
 */
export type FragmentRegistry = Record<string, FragmentDefinition>;
/**
 * Register a fragment definition in the global registry.
 * Fragments should be registered at module load time (not runtime).
 *
 * @param fragment - The fragment definition to register
 * @throws Error if fragment ID is already registered
 */
export declare function registerFragment(fragment: FragmentDefinition): void;
/**
 * Get a fragment definition by ID.
 *
 * @param id - The fragment ID to look up
 * @returns The fragment definition, or undefined if not found
 */
export declare function getFragment(id: string): FragmentDefinition | undefined;
/**
 * List all registered fragments, optionally filtered by category.
 *
 * @param category - Optional category filter ('content', 'media', 'interactive', 'layout')
 * @returns Array of fragment definitions
 */
export declare function listFragments(category?: string): FragmentDefinition[];
/**
 * Get the full fragment registry.
 * Useful for passing to runtime components.
 *
 * @returns The complete fragment registry
 */
export declare function getFragmentRegistry(): FragmentRegistry;
/**
 * Clear all registered fragments.
 * Primarily used for testing.
 */
export declare function clearFragmentRegistry(): void;
