import type { EntropySourceId, KeyringAccount } from "@metamask/keyring-api";
import type { AccountId } from "@metamask/keyring-utils";
import type { AccountGroupId, AccountProvider, MultichainAccount, MultichainAccountId, MultichainAccountSelector, MultichainAccountWallet, MultichainAccountWalletId } from "../index.mjs";
export declare class MultichainAccountAdapter<Account extends KeyringAccount> implements MultichainAccount<Account> {
    #private;
    constructor({ groupIndex, wallet, providers, }: {
        groupIndex: number;
        wallet: MultichainAccountWallet<Account>;
        providers: AccountProvider<Account>[];
    });
    get id(): MultichainAccountId;
    get wallet(): MultichainAccountWallet<Account>;
    get index(): number;
    hasAccounts(): boolean;
    getAccounts(): Account[];
    getAccount(id: AccountId): Account | undefined;
    get(selector: MultichainAccountSelector): Account | undefined;
    select(selector: MultichainAccountSelector): Account[];
}
export declare class MultichainAccountWalletAdapter<Account extends KeyringAccount> implements MultichainAccountWallet<Account> {
    #private;
    constructor({ providers, entropySource, }: {
        providers: AccountProvider<Account>[];
        entropySource: EntropySourceId;
    });
    get id(): MultichainAccountWalletId;
    get entropySource(): EntropySourceId;
    getAccountGroup(groupId: AccountGroupId): MultichainAccount<Account> | undefined;
    getAccountGroups(): MultichainAccount<Account>[];
    getMultichainAccount(groupIndex: number): MultichainAccount<Account> | undefined;
    getMultichainAccounts(): MultichainAccount<Account>[];
    getNextGroupIndex(): number;
    createMultichainAccount(groupIndex: number): Promise<MultichainAccount<Account>>;
    createNextMultichainAccount(): Promise<MultichainAccount<Account>>;
    discoverAndCreateMultichainAccounts(): Promise<MultichainAccount<Account>[]>;
}
//# sourceMappingURL=adapters.d.mts.map