/**
 * Read the user's SSH config as a host directory — we never copy or rewrite it.
 *
 * `~/.ssh/config` is the source of truth for connection details; we only parse
 * `Host` stanzas to list candidate names and `ssh -G <name>` to resolve them for
 * display. `known_hosts` is a secondary candidate source for enrollment.
 */
/**
 * Parse `Host` stanza names from ssh config text. Wildcard/negated patterns
 * (`*`, `?`, `!`) are skipped — they're match rules, not concrete hosts.
 * Pure (text in, names out) so it's unit-testable.
 */
export declare function parseSshConfigHosts(content: string): string[];
/**
 * Parse hostnames from known_hosts text. Hashed entries (`|1|…`) carry no
 * recoverable hostname and are skipped; `[host]:port` and comma lists are split.
 * Pure for testability.
 */
export declare function parseKnownHosts(content: string): string[];
/** `Host` names from ~/.ssh/config, following `Include` globs (best-effort). */
export declare function listSshConfigHosts(): string[];
/** Hostnames recorded in ~/.ssh/known_hosts (hashed entries skipped). */
export declare function listKnownHosts(): string[];
/** True if `name` is a concrete `Host` stanza in ssh config. */
export declare function isSshConfigHost(name: string): boolean;
export interface SshGResult {
    hostname?: string;
    user?: string;
    port?: string;
}
/**
 * Authoritative resolution of a host's effective ssh config via `ssh -G <name>`
 * (honors Match/Include). Returns undefined if `ssh` is unavailable. Note:
 * `ssh -G` returns defaults even for unknown names — pair with `isSshConfigHost`
 * to decide whether a name is actually configured.
 */
export declare function sshResolve(name: string): SshGResult | undefined;
