export type CommandCategory = 'animation' | 'async' | 'control-flow' | 'data' | 'dom' | 'content' | 'navigation' | 'utility' | 'advanced' | 'event' | 'storage' | 'execution' | 'templates' | 'behaviors';
export declare const COMMAND_CATEGORIES: CommandCategory[];
export type CommandSideEffect = 'dom-mutation' | 'dom-query' | 'dom-creation' | 'dom-observation' | 'element-modification' | 'context-modification' | 'context-switching' | 'context-mutation' | 'state-mutation' | 'conditional-execution' | 'iteration' | 'control-flow' | 'execution-termination' | 'time' | 'timing' | 'style-change' | 'event-listening' | 'event-dispatch' | 'event-dispatching' | 'event-prevention' | 'event-listeners' | 'custom-events' | 'command-execution' | 'code-execution' | 'function-execution' | 'method-execution' | 'async-execution' | 'data-mutation' | 'data-binding' | 'property-transfer' | 'network' | 'storage' | 'navigation' | 'clipboard' | 'clipboard-write' | 'console' | 'console-output' | 'animation' | 'focus' | 'scroll' | 'scrolling' | 'template-execution' | 'behavior-installation' | 'random-selection' | 'debugging' | 'error-throwing';
export declare const COMMAND_SIDE_EFFECTS: CommandSideEffect[];
export interface CommandMetadata {
    readonly description: string;
    readonly syntax: string | readonly string[];
    readonly examples: readonly string[];
    readonly category: CommandCategory;
    readonly sideEffects?: readonly CommandSideEffect[];
    readonly deprecated?: boolean;
    readonly deprecationMessage?: string;
    readonly aliases?: readonly string[];
    readonly relatedCommands?: readonly string[];
    readonly version?: string;
    readonly isBlocking?: boolean;
    readonly hasBody?: boolean;
    readonly performance?: {
        readonly complexity?: 'O(1)' | 'O(n)' | 'O(n log n)' | 'O(n²)';
        readonly isAsync?: boolean;
        readonly mayBlock?: boolean;
    };
}
export interface MetadataValidationResult {
    readonly isValid: boolean;
    readonly errors: string[];
    readonly warnings: string[];
}
export declare function validateCommandMetadata(metadata: unknown, commandName: string): MetadataValidationResult;
export declare function normalizeCategory(category: string): CommandCategory;
export declare function createCommandMetadata(partial: Partial<CommandMetadata> & {
    description: string;
    syntax: string | readonly string[];
    examples: readonly string[];
    category: CommandCategory;
}): CommandMetadata;
export declare function mergeCommandMetadata(base: CommandMetadata, overrides: Partial<CommandMetadata>): CommandMetadata;
export declare function getSyntaxArray(metadata: CommandMetadata): readonly string[];
export declare function formatMetadataForDocs(commandName: string, metadata: CommandMetadata): string;
export interface CommandRegistryEntry {
    readonly name: string;
    readonly metadata: CommandMetadata;
    readonly implementation: unknown;
}
export declare class CommandMetadataRegistry {
    private commands;
    register(name: string, metadata: CommandMetadata, implementation: unknown): void;
    get(name: string): CommandRegistryEntry | undefined;
    getCommandNames(): string[];
    getByCategory(category: CommandCategory): CommandRegistryEntry[];
    getDeprecated(): CommandRegistryEntry[];
    validateAll(): Map<string, MetadataValidationResult>;
    generateDocs(): string;
}
export declare const commandMetadataRegistry: CommandMetadataRegistry;
//# sourceMappingURL=command-metadata.d.ts.map