/**
 * Cross-platform shell configuration helper
 *
 * Provides utilities for detecting user's shell, finding config files,
 * and safely appending environment variables across macOS, Linux, and Windows.
 *
 * Supported shells:
 * - zsh (macOS default, Linux)
 * - bash (Linux default, macOS legacy)
 * - fish (alternative shell)
 * - PowerShell (Windows)
 *
 * @module shell-config
 */
/**
 * Supported shell types
 */
export declare enum ShellType {
    ZSH = "zsh",
    BASH = "bash",
    FISH = "fish",
    POWERSHELL = "powershell",
    UNKNOWN = "unknown"
}
/**
 * Result of setupLspEnvVar operation
 */
export interface ShellConfigResult {
    success: boolean;
    shell: string;
    configPath: string;
    exportSyntax: string;
    alreadyConfigured?: boolean;
    error?: string;
}
/**
 * Detects the user's current shell from the SHELL environment variable
 *
 * @returns Shell type identifier (zsh, bash, fish, powershell, unknown)
 */
export declare function detectShell(): string;
/**
 * Gets the appropriate shell config file path for the given shell and platform
 *
 * @param shell - Shell type (zsh, bash, fish, powershell, unknown)
 * @param platform - OS platform (darwin, linux, win32)
 * @returns Full path to the shell config file
 */
export declare function getShellConfigPath(shell: string, platform?: string): string;
/**
 * Gets the correct export syntax for the given shell
 *
 * @param shell - Shell type
 * @param varName - Environment variable name
 * @param value - Environment variable value
 * @returns Export command string in the correct syntax
 */
export declare function getExportSyntax(shell: string, varName: string, value: string): string;
/**
 * Checks if an environment variable is already configured in the given file
 *
 * Detects various syntaxes:
 * - POSIX: export VAR=value, export VAR = value
 * - Fish: set -gx VAR value
 * - PowerShell: $env:VAR = "value"
 *
 * @param configPath - Path to the shell config file
 * @param varName - Environment variable name to check
 * @returns true if the variable is already configured (not commented out)
 */
export declare function isEnvVarConfigured(configPath: string, varName: string): boolean;
/**
 * Appends an environment variable export to the shell config file
 *
 * @param configPath - Path to the shell config file
 * @param shell - Shell type for correct syntax
 * @param varName - Environment variable name
 * @param value - Environment variable value
 */
export declare function appendEnvVarToConfig(configPath: string, shell: string, varName: string, value: string): void;
/**
 * Main function to set up the ENABLE_LSP_TOOL environment variable
 *
 * Automatically detects the user's shell, finds the config file,
 * checks if already configured, and appends if needed.
 *
 * @returns Result object with success status and details
 */
export declare function setupLspEnvVar(): ShellConfigResult;
//# sourceMappingURL=shell-config.d.ts.map