/**
 * Generate mnemonic
 */
export function generateMnemonic(): string;
/**
 * Get seed from mnemonic
 *
 * @param {string} mnemonic
 * @param {string} [password]
 */
export function mnemonicToSeed(mnemonic: string, password?: string): Uint8Array<ArrayBufferLike>;
/**
 * Get HD account from mnemonic
 *
 * @param {string} mnemonic
 * @param {import('./types.js').SignatureType} type
 * @param {string} path
 * @param {string} [password]
 * @param {import('./types.js').Network} [network]
 */
export function accountFromMnemonic(mnemonic: string, type: import("./types.js").SignatureType, path: string, password?: string, network?: import("./types.js").Network): {
    type: import("./signature.js").SignatureType;
    address: import("./types.js").IAddress;
    publicKey: Uint8Array;
    path: string;
    privateKey: Uint8Array;
};
/**
 * Get HD account from seed
 *
 * @param {Uint8Array} seed
 * @param {import('./types.js').SignatureType} type
 * @param {string} path
 * @param {import('./types.js').Network} [network]
 * @returns {SetRequired<import('./types.js').IAccount, 'privateKey' | 'path'>}
 */
export function accountFromSeed(seed: Uint8Array, type: import("./types.js").SignatureType, path: string, network?: import("./types.js").Network): SetRequired<import("./types.js").IAccount, "privateKey" | "path">;
/**
 * Get account from private key
 *
 * Lotus BLS private key is little endian so you need to reverse the byte order. Use `lotusBlsPrivateKeyToBytes` to convert.
 *
 * @param {Uint8Array} privateKey
 * @param {import('./types.js').SignatureType} type
 * @param {import('./types.js').Network} network
 * @param {string} [path]
 * @returns {SetRequired<import('./types.js').IAccount, 'privateKey'>}
 */
export function accountFromPrivateKey(privateKey: Uint8Array, type: import("./types.js").SignatureType, network: import("./types.js").Network, path?: string): SetRequired<import("./types.js").IAccount, "privateKey">;
/**
 * Get account from lotus private key export
 *
 * @param {string} lotusHex - Lotus hex encoded private key .ie `hex({"Type":"bls","PrivateKey":"base64pad(private-key)"})`
 * @param {import('./types.js').Network} network - Network
 * @returns {import('./types.js').IAccount}
 */
export function accountFromLotus(lotusHex: string, network: import("./types.js").Network): import("./types.js").IAccount;
/**
 * Create account
 *
 * @param {import('./types.js').SignatureType} type
 * @param {import('./types.js').Network} network
 * @returns {SetRequired<import('./types.js').IAccount, 'privateKey'>}
 */
export function create(type: import("./types.js").SignatureType, network: import("./types.js").Network): SetRequired<import("./types.js").IAccount, "privateKey">;
/**
 * Get public key from private key
 *
 * @param {Uint8Array} privateKey
 * @param {import('./types.js').Network} network
 * @param {import('./types.js').SignatureType} type
 * @returns {import('./types.js').IAccount}
 */
export function getPublicKey(privateKey: Uint8Array, network: import("./types.js").Network, type: import("./types.js").SignatureType): import("./types.js").IAccount;
/**
 * Sign filecoin message
 *
 * @param {Uint8Array} privateKey
 * @param {import('./types.js').SignatureType} type
 * @param {import('./types.js').MessageObj} message
 * @returns
 */
export function signMessage(privateKey: Uint8Array, type: import("./types.js").SignatureType, message: import("./types.js").MessageObj): Signature;
/**
 * Sign arbitary bytes similar to `lotus wallet sign`
 *
 * Lotus BLS private key is little endian so you need to reverse the byte order. Use `lotusBlsPrivateKeyToBytes` to convert.
 *
 * @param {Uint8Array} privateKey
 * @param {import('./types.js').SignatureType} type
 * @param {Uint8Array} data
 */
export function sign(privateKey: Uint8Array, type: import("./types.js").SignatureType, data: Uint8Array): Signature;
/**
 * Verify signatures
 *
 * @param {import('./signature.js').Signature} signature
 * @param {Uint8Array} data
 * @param {Uint8Array} publicKey
 */
export function verify(signature: import("./signature.js").Signature, data: Uint8Array, publicKey: Uint8Array): boolean;
/**
 * Lotus BLS base64 private key to bytes
 * Lotus BLS private key is little endian so you need to reverse the byte order.
 *
 * @param {string} priv
 */
export function lotusBlsPrivateKeyToBytes(priv: string): Uint8Array<ArrayBufferLike>;
/**
 *
 * @param {Signature} signature
 * @param {Uint8Array} data
 */
export function recoverPublicKey(signature: Signature, data: Uint8Array): Uint8Array<ArrayBufferLike>;
/**
 *
 * @param {Signature} signature
 * @param {Uint8Array} data
 * @param {import('./types.js').Network} network
 */
export function recoverAddress(signature: Signature, data: Uint8Array, network: import("./types.js").Network): import("./address.js").AddressSecp256k1 | import("./address.js").AddressBLS;
/**
 * Export account to lotus private key export format (hex)
 *
 * @param {import('./types.js').IAccount} account
 */
export function accountToLotus(account: import("./types.js").IAccount): string;
export namespace Schemas {
    let lotusPrivateKey: z.ZodObject<{
        Type: z.ZodUnion<[z.ZodLiteral<"bls">, z.ZodLiteral<"secp256k1">]>;
        /**
         * Lotus BLS private key is little endian so you need to reverse the byte order.
         * base64pad(private-key)
         */
        PrivateKey: z.ZodString;
    }, "strip", z.ZodTypeAny, {
        Type: "bls" | "secp256k1";
        PrivateKey: string;
    }, {
        Type: "bls" | "secp256k1";
        PrivateKey: string;
    }>;
}
import type { SetRequired } from 'type-fest';
import { Signature } from './signature.js';
import { z } from 'zod';
//# sourceMappingURL=wallet.d.ts.map