import { RuntimeConfig } from '../../utils/types/runtime.config';
/**
 * Result of a single diagnostic check
 */
export interface DiagnosticServiceResult {
    /** Whether the check passed */
    passed: boolean;
    /** Descriptive message */
    message: string;
    /** Optional hint for fixing the issue */
    hint?: string;
}
/**
 * Complete diagnostic report
 */
export interface DiagnosticReport {
    /** Number of checks that passed */
    passed: number;
    /** Number of checks that failed */
    failed: number;
    /** Individual check results */
    checks: Array<{
        name: string;
        result: DiagnosticServiceResult;
        required: boolean;
    }>;
}
/**
 * Service for running environment and project diagnostics
 */
export declare class DiagnosticService {
    private cwd;
    constructor(cwd?: string);
    /**
     * Run all diagnostic checks
     */
    runChecks(config: RuntimeConfig, verbose?: boolean): Promise<DiagnosticReport>;
    /**
     * Check Node.js version is >= 18
     */
    checkNodeVersion(): Promise<DiagnosticServiceResult>;
    /**
     * Check TypeScript configuration
     */
    checkTypeScriptConfig(): Promise<DiagnosticServiceResult>;
    /**
     * Check project structure
     */
    checkProjectStructure(config: RuntimeConfig): Promise<DiagnosticServiceResult>;
    /**
     * Check AWS credentials
     */
    checkAwsCredentials(config: RuntimeConfig): Promise<DiagnosticServiceResult>;
    /**
     * Check if dependencies are installed
     */
    checkDependencies(): Promise<DiagnosticServiceResult>;
    /**
     * Check if build artifacts exist
     */
    checkBuildArtifacts(config: RuntimeConfig): Promise<DiagnosticServiceResult>;
}
