/**
 * Environment Diagnostics Module
 *
 * Provides detailed environment detection diagnostics for troubleshooting
 * OAuth authentication issues, particularly for Windows users experiencing
 * false headless detection.
 *
 * Case study: Vietnamese Windows users reported "command hangs" because
 * Windows terminal wrappers don't set isTTY correctly, triggering
 * headless mode when browser should be available.
 */
/// <reference types="node" />
/**
 * Detailed environment diagnostic information
 */
export interface EnvironmentDiagnostics {
    /** Operating system platform */
    platform: NodeJS.Platform;
    /** Platform display name */
    platformName: string;
    /** Current shell (from SHELL env or detected) */
    shell: string;
    /** Terminal program (TERM_PROGRAM env) */
    termProgram: string | null;
    /** Whether running in SSH session */
    sshSession: boolean;
    /** SSH detection reason */
    sshReason: string | null;
    /** stdin TTY status */
    ttyStatus: boolean | 'undefined';
    /** stdout TTY status */
    stdoutTty: boolean | 'undefined';
    /** Display environment (Linux X11/Wayland) */
    display: string | null;
    /** Windows Terminal detected (WT_SESSION env) */
    windowsTerminal: boolean;
    /** VS Code integrated terminal detected */
    vsCodeTerminal: boolean;
    /** CI environment detected */
    ciEnvironment: boolean;
    /** Final headless detection result */
    detectedHeadless: boolean;
    /** Reasons why headless was detected (or not) */
    headlessReasons: string[];
    /** Browser capability assessment */
    browserCapability: 'available' | 'unlikely' | 'unknown';
    /** Browser capability reason */
    browserReason: string;
}
/**
 * Get comprehensive environment diagnostics
 */
export declare function getEnvironmentDiagnostics(): EnvironmentDiagnostics;
/**
 * Check if environment should use headless OAuth flow
 * Uses improved detection that avoids Windows false positives
 */
export declare function shouldUseHeadlessAuth(): boolean;
/**
 * Format diagnostics for display
 */
export declare function formatEnvironmentDiagnostics(diag: EnvironmentDiagnostics): string[];
declare const _default: {
    getEnvironmentDiagnostics: typeof getEnvironmentDiagnostics;
    shouldUseHeadlessAuth: typeof shouldUseHeadlessAuth;
    formatEnvironmentDiagnostics: typeof formatEnvironmentDiagnostics;
};
export default _default;
//# sourceMappingURL=environment-diagnostics.d.ts.map