import { BaseConnection, DeviceCredentials } from './base-connection';
export type SupportedDeviceType = 'cisco_ios' | 'cisco_ios_xe' | 'cisco_ios_xr' | 'cisco_nxos' | 'cisco_asa' | 'cisco_sg300' | 'juniper_junos' | 'juniper_srx' | 'paloalto_panos' | 'ciena_saos' | 'fortinet_fortios' | 'linux' | 'generic';
export interface ConnectionClassMapping {
    [key: string]: typeof BaseConnection;
}
export declare class ConnectionDispatcher {
    static createConnection(credentials: DeviceCredentials): BaseConnection;
    static getSupportedDeviceTypes(): string[];
    static isDeviceTypeSupported(deviceType: string): boolean;
    static getDeviceTypeDisplayName(deviceType: string): string;
    static getDeviceTypeOptions(): Array<{
        name: string;
        value: string;
        description: string;
    }>;
    static autoDetectDeviceType(credentials: DeviceCredentials): Promise<string | null>;
}
export declare function ConnectHandler(credentials: DeviceCredentials): BaseConnection;
export declare function ConnectHandlerWithAutoDetect(credentials: Omit<DeviceCredentials, 'deviceType'>): Promise<BaseConnection>;
