import type { ICliInterfaceService } from "../../application/interface/cli-interface-service.interface";
import type { IConfigService } from "../../application/interface/config-service.interface";
import type { IFileSystemService } from "../../application/interface/file-system-service.interface";
import type { ICommand } from "../interface/command.interface";
import type { TInitCommandProperties } from "../type/init-command-properties.type";
/**
 * Command responsible for initializing and installing selected modules.
 * Implements the ICommand interface to provide standard command execution.
 */
export declare class InitCommand implements ICommand {
    /** CLI interface service for user interaction */
    readonly CLI_INTERFACE_SERVICE: ICliInterfaceService;
    /** Configuration service for reading and writing config */
    readonly CONFIG_SERVICE: IConfigService;
    /** File system service for file operations */
    readonly FILE_SYSTEM_SERVICE: IFileSystemService;
    /** Properties defining which modules to install */
    readonly PROPERTIES: TInitCommandProperties;
    /**
     * Initializes a new instance of the InitCommand.
     * @param properties - Properties defining which modules to install
     * @param cliInterfaceService - Service for CLI user interactions
     * @param fileSystemService - Service for file system operations
     */
    constructor(properties: TInitCommandProperties, cliInterfaceService: ICliInterfaceService, fileSystemService: IFileSystemService);
    /**
     * Executes the initialization command.
     * Reads existing configuration if available, determines which modules to install,
     * installs selected modules, and updates the configuration.
     * @returns Promise that resolves when execution is complete
     */
    execute(): Promise<void>;
}
