import AeSdkBase from './AeSdkBase.js';
import { OnAccount } from './AeSdkMethods.js';
import AccountBase from './account/Base.js';
import { Encoded } from './utils/encoder.js';
export default class AeSdk extends AeSdkBase {
    accounts: {
        [key: Encoded.AccountAddress]: AccountBase;
    };
    selectedAddress?: Encoded.AccountAddress;
    /**
     * @param options - Options
     */
    constructor({ accounts, ...options }?: {
        accounts?: AccountBase[];
    } & ConstructorParameters<typeof AeSdkBase>[0]);
    _resolveAccount(account?: OnAccount): AccountBase;
    /**
     * Get accounts addresses
     * @example addresses()
     */
    addresses(): Encoded.AccountAddress[];
    /**
     * Add specific account
     * @param account - Account instance
     * @param options - Options
     * @param options.select - Select account
     * @example addAccount(account)
     */
    addAccount(account: AccountBase, { select }?: {
        select?: boolean;
    }): void;
    /**
     * Remove specific account
     * @param address - Address of account to remove
     * @example removeAccount(address)
     */
    removeAccount(address: Encoded.AccountAddress): void;
    /**
     * Select specific account
     * @param address - Address of account to select
     * @example selectAccount('ak_xxxxxxxx')
     */
    selectAccount(address: Encoded.AccountAddress): void;
}
