/**
 * Detect the user's interactive shell via `$SHELL`. Falls back to `unknown`
 * for non-POSIX environments where we can't safely guess.
 */
export declare function detectShell(): SupportedShell;
/**
 * Pick the rc file we should append to for a given shell. Returns `null` for
 * shells we don't know how to integrate with non-interactively.
 */
export declare function rcFileFor(shell: SupportedShell): string | null;
/**
 * Render the shell snippet that puts pantry's global bin on PATH. POSIX form
 * for zsh/bash; fish gets a `set -gx PATH` form.
 */
export declare function renderShellSnippet(opts?: ShellInitOptions): string;
/**
 * Idempotently append the snippet to the user's shell rc file. Re-runs are
 * a no-op (we look for our begin marker). Returns `changed: false` if the
 * snippet was already present.
 */
export declare function installShellInit(opts?: ShellInitOptions): InstallShellInitResult;
/**
 * Remove a previously installed snippet (between our markers). Safe to call
 * even if no snippet was installed.
 */
export declare function uninstallShellInit(opts?: ShellInitOptions): InstallShellInitResult;
export declare interface ShellInitOptions {
  globalBin?: string
  shell?: SupportedShell
}
export declare interface InstallShellInitResult {
  rcFile: string
  shell: SupportedShell
  changed: boolean
}
export type SupportedShell = 'zsh' | 'bash' | 'fish' | 'unknown';
