import { Wallet } from './Wallet';
import { IConnector, IProvider } from './types';
export interface ConnectorEvents<P extends IProvider> {
    connecting: (message?: string) => void;
    connect: (wallet: Wallet<P>) => void;
    disconnect: (wallet: Wallet<P>) => void;
    error: (error: Error) => void;
}
export declare class WalletConnector<N extends string, P extends IProvider, C> implements IConnector<N, P, C> {
    readonly id: N;
    readonly name: string;
    readonly icon: string;
    readonly wallets: Wallet<P>[];
    readonly config: C;
    private _connectedWallet;
    private _ee;
    constructor(id: N, name: string, icon: string, wallets: Wallet<P>[], config: C);
    get connectedWallet(): Wallet<P> | null;
    connect(wallet: string | Wallet<P>): Promise<Wallet<P> | null>;
    disconnect(): Promise<void>;
    clone(): WalletConnector<N, P, C>;
    on<K extends keyof ConnectorEvents<P>>(name: K, handler: ConnectorEvents<P>[K]): import('nanoevents').Unsubscribe;
}
