/**
 * MetadataGenerator
 *
 * Generates feature metadata (slug, name, description) from user input
 * via AI call through IStructuredAgentCaller.
 * When the user input references a file (e.g. SPEC.md), the file content
 * is read and included in the prompt so the AI derives metadata from the
 * actual file rather than the bare reference string.
 * Errors are propagated to the caller.
 */
import type { AgentType } from '../../../../domain/generated/output.js';
import type { IStructuredAgentCaller } from '../../../ports/output/agents/structured-agent-caller.interface.js';
interface FeatureMetadata {
    slug: string;
    name: string;
    description: string;
}
export declare class MetadataGenerator {
    private readonly structuredCaller;
    constructor(structuredCaller: IStructuredAgentCaller);
    /**
     * Generate feature metadata from user input via AI.
     * When repositoryPath is provided, file references in the user input
     * (e.g. "Develop based on the current SPEC.md") are resolved and their
     * content is included in the prompt.
     * Errors are propagated to the caller.
     */
    generateMetadata(userInput: string, agentType?: AgentType, repositoryPath?: string): Promise<FeatureMetadata>;
    /**
     * Detect a file reference in user input and read the file content.
     * Returns the file content if found and readable, undefined otherwise.
     */
    resolveFileReference(userInput: string, repositoryPath: string): string | undefined;
    /**
     * Extract metadata locally from user input without AI.
     * Used as fallback when the AI call fails or returns invalid data.
     */
    private extractMetadataLocally;
    /**
     * Convert text to kebab-case slug with 50-char limit.
     * Removes special characters, collapses spaces, limits length.
     */
    private toSlug;
}
export {};
//# sourceMappingURL=metadata-generator.d.ts.map