import { IUseCase } from '../../interfaces/IUseCase.js';
import { IBranchMemoryBankRepository } from '../../../domain/repositories/IBranchMemoryBankRepository.js';
import { CoreFilesDTO } from '../../dtos/CoreFilesDTO.js';
/**
 * Input data for creating/updating branch core files
 */
export interface CreateBranchCoreFilesInput {
    /**
     * Branch name
     */
    branchName: string;
    /**
     * Core files data
     */
    files: CoreFilesDTO;
}
/**
 * Output data for creating/updating branch core files
 */
export interface CreateBranchCoreFilesOutput {
    /**
     * Success message
     */
    message: string;
    /**
     * List of updated file paths
     */
    updatedFiles: string[];
}
/**
 * Use case for creating or updating core files in a branch memory bank
 */
export declare class CreateBranchCoreFilesUseCase implements IUseCase<CreateBranchCoreFilesInput, CreateBranchCoreFilesOutput> {
    private readonly branchRepository;
    private readonly ACTIVE_CONTEXT_PATH;
    private readonly PROGRESS_PATH;
    private readonly SYSTEM_PATTERNS_PATH;
    private readonly BRANCH_CONTEXT_PATH;
    /**
     * Constructor
     * @param branchRepository Branch memory bank repository
     */
    constructor(branchRepository: IBranchMemoryBankRepository);
    /**
     * Execute the use case
     * @param input Input data
     * @returns Promise resolving to output data
     */
    execute(input: CreateBranchCoreFilesInput): Promise<CreateBranchCoreFilesOutput>;
    /**
     * Generate JSON for active context
     * @param activeContext Active context DTO
     * @returns JSON content as string
     */
    private generateActiveContextJSON;
    /**
     * Format recent changes to structured format
     * @param changes Array of change strings
     * @returns Structured changes
     */
    private formatRecentChanges;
    /**
     * Format active decisions to structured format
     * @param decisions Array of decision strings
     * @returns Structured decisions
     */
    private formatActiveDecisions;
    /**
     * Format considerations to structured format
     * @param considerations Array of consideration strings
     * @returns Structured considerations
     */
    private formatConsiderations;
    /**
     * Format next steps to structured format
     * @param steps Array of step strings
     * @returns Structured steps
     */
    private formatNextSteps;
    /**
     * Generate JSON for progress
     * @param progress Progress DTO
     * @returns JSON content as string
     */
    private generateProgressJSON;
    /**
     * Format working features to structured format
     * @param features Array of feature strings
     * @returns Structured features
     */
    private formatWorkingFeatures;
    /**
     * Format pending implementation to structured format
     * @param items Array of pending item strings
     * @returns Structured pending items
     */
    private formatPendingImplementation;
    /**
     * Format known issues to structured format
     * @param issues Array of issue strings
     * @returns Structured issues
     */
    private formatKnownIssues;
    /**
     * Generate JSON for system patterns
     * @param systemPatterns System patterns DTO
     * @returns JSON content as string
     */
    private generateSystemPatternsJSON;
    /**
     * Format technical decisions to structured format
     * @param decisions Array of technical decision DTOs
     * @returns Structured technical decisions
     */
    private formatTechnicalDecisions;
    /**
     * Generate a UUID for document IDs
     * @returns UUID string
     */
    private generateUUID;
}
//# sourceMappingURL=CreateBranchCoreFilesUseCase.d.ts.map