/**
 * Create Feature Use Case
 *
 * Creates a new feature entity with a git worktree for isolated development,
 * initializes the spec directory with YAML templates, then spawns the
 * feature agent to begin autonomous SDLC processing.
 *
 * Business Rules:
 * - AI generates slug/name/description from user's free-text input
 * - Falls back to regex-based slug if AI fails
 * - Full user input is preserved as-is in spec.yaml
 * - Slug must be unique within the repository
 * - A git worktree is created at ~/.shep/repos/HASH/wt/SLUG/
 * - Spec YAML files are scaffolded at WORKTREE/specs/NNN-SLUG/
 * - Feature agent is spawned with the spec dir path
 * - specPath is persisted on the Feature record
 * - Initial lifecycle is Requirements
 */
import type { Feature } from '../../../domain/generated/output.js';
import type { IFeatureRepository } from '../../ports/output/repositories/feature-repository.interface.js';
import type { IWorktreeService } from '../../ports/output/services/worktree-service.interface.js';
import type { IFeatureAgentProcessService } from '../../ports/output/agents/feature-agent-process.interface.js';
import type { IAgentRunRepository } from '../../ports/output/agents/agent-run-repository.interface.js';
import type { ISpecInitializerService } from '../../ports/output/services/spec-initializer.interface.js';
import type { IAgentExecutorFactory } from '../../ports/output/agents/agent-executor-factory.interface.js';
export interface CreateFeatureInput {
    userInput: string;
    repositoryPath: string;
    approvalMode?: string;
}
export declare class CreateFeatureUseCase {
    private readonly featureRepo;
    private readonly worktreeService;
    private readonly agentProcess;
    private readonly runRepository;
    private readonly specInitializer;
    private readonly executorFactory;
    constructor(featureRepo: IFeatureRepository, worktreeService: IWorktreeService, agentProcess: IFeatureAgentProcessService, runRepository: IAgentRunRepository, specInitializer: ISpecInitializerService, executorFactory: IAgentExecutorFactory);
    execute(input: CreateFeatureInput): Promise<Feature>;
    private generateMetadata;
    private toSlug;
}
//# sourceMappingURL=create-feature.use-case.d.ts.map