import { Account, KeyType, ExplorerProvider, NodeProvider } from '@alephium/web3';
import { Address } from '@alephium/web3';
import { SignerProviderWithCachedAccounts } from '@alephium/web3';
export declare function generateMnemonic(wordLength?: 12 | 24): string;
export declare function deriveHDWalletPrivateKey(mnemonic: string, keyType: KeyType, _fromAddressIndex?: number, passphrase?: string): string;
export declare function deriveSecp256K1PrivateKey(mnemonic: string, fromAddressIndex?: number, passphrase?: string): string;
export declare function deriveSchnorrPrivateKey(mnemonic: string, fromAddressIndex?: number, passphrase?: string): string;
export declare function deriveHDWalletPrivateKeyForGroup(mnemonic: string, targetGroup: number, keyType: KeyType, _fromAddressIndex?: number, passphrase?: string): [string, number];
export declare function deriveSecp256K1PrivateKeyForGroup(mnemonic: string, targetGroup: number, _fromAddressIndex?: number, passphrase?: string): [string, number];
export declare function deriveSchnorrPrivateKeyForGroup(mnemonic: string, targetGroup: number, _fromAddressIndex?: number, passphrase?: string): [string, number];
export declare function getHDWalletPath(keyType: KeyType, addressIndex: number): string;
export declare function getSecp259K1Path(addressIndex: number): string;
export declare function getSchnorrPath(addressIndex: number): string;
export declare function getGlSecp256K1Path(addressIndex: number): string;
export declare function getGlSecp256R1Path(addressIndex: number): string;
export declare function getGlEd25519Path(addressIndex: number): string;
export declare function getGlWebauthnPath(addressIndex: number): string;
export type HDWalletAccount = Account & {
    addressIndex: number;
};
export declare class HDWallet extends SignerProviderWithCachedAccounts<HDWalletAccount> {
    private readonly mnemonic;
    readonly keyType: KeyType;
    private readonly passphrase?;
    readonly nodeProvider: NodeProvider;
    readonly explorerProvider: ExplorerProvider | undefined;
    constructor({ mnemonic, keyType, nodeProvider, explorerProvider, passphrase }: {
        mnemonic: string;
        keyType?: KeyType;
        nodeProvider?: NodeProvider;
        explorerProvider?: ExplorerProvider;
        passphrase?: string;
    });
    private getNextFromAddressIndex;
    deriveAndAddNewAccount(targetGroup?: number): HDWalletAccount;
    signRaw(signerAddress: Address, hexString: string): Promise<string>;
}
