declare {
    // Exit status of the last command
    // $?
    const EXIT_STATUS: num

    // Process ID of the current shell
    // $$
    const CURRENT_PID: num

    // TODO $!, $_, $-

    // Name of the shell or script
    // $0 = $args[0]
    // Argument to the script
    // $1 ~ $9 = $args[1] ~ $args[9]
    // ${10} ~ ${N} = $args[10] ~ $args[N]
    // All arguments, individually quoted
    // $@ = ...$args
    // All arguments as a single word
    // $* = $args
    // Number of arguments passed to the script
    // $# = #args
    const args: str[]

    // Home directory of the current user
    const HOME: str

    // Current username
    const USER: str

    // Hostname of the machine
    const HOSTNAME: str

    // Name of the shell
    const SHELL: str

    // Present working directory
    const PWD: str

    // Previous working directory
    const OLDPWD: str

    // Current terminal type
    const TERM: str

    // Path to user's shell profile file
    const BASH_PROFILE: str

    // Version of Bash
    const BASH_VERSION: str

    // Path to Bash binary
    const BASH: str

    // Search path for executables
    const PATH: str

    // System architecture (e.g., x86_64)
    const HOSTTYPE: str

    // Operating system (e.g., linux-gnu)
    const OSTYPE: str

    // Platform type (e.g., x86_64-pc-linux-gnu)
    const MACHTYPE: str

    // Temporary directory path
    const TMPDIR: str

    // Random number between 0 and 32767
    const RANDOM: num

    // Number of seconds since shell started
    const SECONDS: num

    // Current user ID
    const UID: num

    // Effective user ID (after sudo, etc.)
    const EUID: num

    // Parent process ID
    const PPID: num

    // Internal Field Separator (word split characters)
    const IFS: str

    // Shell nesting level
    const SHLVL: num

    // Current script line number
    const LINENO: num

    // Status of each command in a pipeline (last run)
    const PIPESTATUS: num[]

    // Command executed before displaying PS1 prompt
    const PROMPT_COMMAND: str

    // Primary command prompt string (e.g., "$ ")
    const PS1: str

    // Secondary command prompt string (for multi-line input)
    const PS2: str

    // List of groups the current user belongs to
    const GROUPS: str[]

    // Current language setting
    const LANG: str

    // Override all locale settings
    const LC_ALL: str

    // Characters that are considered word breaks during completion
    const COMP_WORDBREAKS: str

    // Shell nesting level (increases with each new shell)
    const SHLVL: num
}
