import { ConnectConfig } from "ssh2";
import { HostId } from "./HostId.js";
export type Ssh2SshOptions = Omit<ConnectConfig, "host" | "port" | "user" | "passphrase" | "privateKey" | "passphrase" | "password">;
export interface SshHostBaseOptions {
    host: string;
    port?: number;
    user?: string;
    privateKey?: string;
    privateKeyPath?: string;
    passphrase?: string;
    password?: string;
    hops?: HopHostOptions[] | undefined;
}
export interface SshHostBaseSettings {
    host: string;
    port: number;
    user: string;
    privateKey?: string;
    privateKeyPath?: string;
    passphrase?: string;
    password?: string;
    hops: HopHostSettings[] | undefined;
}
export type SshHostOptions = SshHostBaseOptions & Ssh2SshOptions;
export type SshHostTargetSettings = Omit<SshHostBaseSettings, "hops"> & Pick<SshHostBaseOptions, "hops"> & Ssh2SshOptions & {
    id: HostId;
};
export type SshHostSettings = SshHostBaseSettings & Ssh2SshOptions & {
    id: HostId;
};
export type HopHostOptions = Omit<SshHostOptions, "hops" | "id">;
export type HopHostSettings = Omit<SshHostSettings, "hops" | "id">;
export declare const defaultSshHostSettings: SshHostSettings;
export declare function completeTargetSettings(options: SshHostOptions): SshHostTargetSettings;
export declare function loadSettings(options: SshHostOptions): Promise<SshHostSettings>;
//# sourceMappingURL=SshHostOptions.d.ts.map