import type { Logger } from '@nestjs/common';
export interface ManagedProvider {
    uniqName: string;
    type?: string;
    connect(): Promise<void>;
    disconnect(): Promise<void>;
    healthcheck(): Promise<boolean>;
}
export interface BaseConnectionManagerOptions<T extends ManagedProvider> {
    providers: T[];
    logger: Logger;
}
/**
 * Shared provider registry/connection lifecycle for EVM managers.
 * Network/mempool managers decide their own failover and availability policies.
 */
export declare abstract class BaseConnectionManager<T extends ManagedProvider> {
    protected readonly moduleName = "blockchain-provider";
    protected providers: Map<string, T>;
    protected logger: Logger;
    protected connected: Set<string>;
    constructor(options: BaseConnectionManagerOptions<T>);
    get allProviders(): T[];
    protected ensureConnected(provider: T): Promise<boolean>;
    protected ensureConnectedAll(): Promise<{
        connected: T[];
        failed: T[];
    }>;
    destroy(): Promise<void>;
    getProviderByName(name: string): Promise<T>;
    removeProvider(name: string): Promise<boolean>;
    getConnectionOptionsForAllProviders(): any[];
}
