import type { FleetDriver, FleetServer, ServerFacts, ServerProvider } from './index';
export interface FleetSshTransport {
    scan(endpoint: string, port: number): Promise<{
        algorithm: string;
        key: string;
    }>;
    exec(server: FleetServer, command: string): Promise<{
        code: number;
        stdout: string;
        stderr: string;
    }>;
}
export declare class SystemFleetSshTransport implements FleetSshTransport {
    scan(endpoint: string, port: number): Promise<{
        algorithm: string;
        key: string;
    }>;
    exec(server: FleetServer, command: string): Promise<{
        code: number;
        stdout: string;
        stderr: string;
    }>;
}
export declare class SshFleetDriver implements FleetDriver {
    readonly provider: ServerProvider;
    private transport;
    private discoverer?;
    constructor(provider: ServerProvider, transport?: FleetSshTransport, discoverer?: FleetDriver['discover'] | undefined);
    discover(projectId: string): ReturnType<FleetDriver['discover']>;
    test(server: FleetServer): ReturnType<FleetDriver['test']>;
    validate(server: FleetServer): Promise<ServerFacts>;
    bootstrap(server: FleetServer, steps: string[]): ReturnType<FleetDriver['bootstrap']>;
    capabilities(): FleetServer['capabilities'];
}
