import { GitDetector } from './git-detector.js';
import { ConfigManager } from './config-manager.js';
import { GitInstaller } from './git-installer.js';
import { WelcomeScreen } from '../ui/welcome.js';
import { UserPrompts } from '../ui/prompts.js';
import { CliOptions, GitUserInfo, GitInitResult } from '../types/cli.js';
/**
 * Orchestrates the main workflow of git repository initialization
 * Separates business logic from CLI concerns for better testability
 */
export declare class WorkflowOrchestrator {
    private gitDetector;
    private configManager;
    private gitInstaller;
    private welcomeScreen;
    private userPrompts;
    constructor(gitDetector: GitDetector, configManager: ConfigManager, gitInstaller: GitInstaller, welcomeScreen: WelcomeScreen, userPrompts: UserPrompts);
    /**
     * Execute the complete gitset workflow
     */
    execute(directory: string, options: CliOptions): Promise<GitInitResult>;
    /**
     * Ensure Git is installed on the system
     */
    private ensureGitInstallation;
    /**
     * Install Git using available methods
     */
    private installGit;
    /**
     * Select installation method when multiple options are available
     */
    private selectInstallationMethod;
    /**
     * Validate directory with retry logic
     */
    private validateAndGetDirectory;
    /**
     * Get user configuration based on options
     */
    private getUserConfiguration;
    /**
     * Initialize Git repository
     */
    private initializeRepository;
    /**
     * Show workflow results to user
     */
    private showResults;
    /**
     * Legacy methods for backward compatibility with CLI tests
     * These delegate to the appropriate components
     */
    checkGitInstallation(): Promise<import("../types/cli.js").GitInstallStatus>;
    getGlobalGitConfig(): Promise<GitUserInfo>;
    validateDirectory(directory: string): Promise<import("../types/cli.js").DirectoryValidation>;
    initializeGitRepository(directory: string, userInfo: any): Promise<GitInitResult>;
    /**
     * Get target directory from user input
     */
    private getTargetDirectory;
    /**
     * Check if Git repository already exists and handle user decision
     */
    private checkExistingGitRepo;
    /**
     * Ensure target directory exists (create if needed)
     */
    private ensureDirectoryExists;
    /**
     * Factory method to create orchestrator with default dependencies
     */
    static createDefault(): WorkflowOrchestrator;
}
//# sourceMappingURL=workflow-orchestrator.d.ts.map