import { Account, NetworkId, SignerProvider, KeyType } from '@alephium/web3';
import { SignClientOptions } from '@alephium/walletconnect-provider';
import { AlephiumWindowObject } from '@alephium/get-extension-wallet';
import { InjectedProviderId } from '../types';
export type ConnectResult = {
    account: Account;
    signerProvider: SignerProvider;
};
export type ConnectOptions = {
    network: NetworkId;
    addressGroup?: number;
    keyType?: KeyType;
    onDisconnected: () => Promise<void> | void;
    onConnected: (result: ConnectResult) => Promise<void> | void;
};
export type InjectedConnectOptions = ConnectOptions & {
    injectedProviderId?: InjectedProviderId;
};
export type Connector = {
    connect: (opts: InjectedConnectOptions | ConnectOptions) => Promise<Account | undefined>;
    disconnect: (signerProvider: SignerProvider) => Promise<void>;
    autoConnect?: (opts: ConnectOptions) => Promise<Account | undefined>;
};
export type Connectors = {
    injected: Connector;
    walletConnect: Connector;
    desktopWallet: Connector;
};
export declare function createWalletConnectConnector(signClientOptions?: SignClientOptions): Connector;
export declare function createDesktopWalletConnector(signClientOptions?: SignClientOptions): Connector;
export declare function createInjectedConnector(providers: AlephiumWindowObject[]): Connector;
export declare function createDefaultConnectors(injectedProviders: AlephiumWindowObject[]): Connectors;
