/// <reference types="node" />
import BigNumber from 'bignumber.js';
import { BaseCurve, CurveForKD } from './curves';
declare type ExtendedKey = {
    key: Buffer;
    chainCode: Buffer;
};
declare function ser256(p: BigNumber): Buffer;
declare function parse256(seq: Buffer): BigNumber;
interface Bip32KeyDeriver {
    generateMasterKeyFromSeed(seed: Buffer): ExtendedKey;
    N(extPriv: ExtendedKey): ExtendedKey;
    CKDPriv(parent: ExtendedKey, index: number): ExtendedKey;
    CKDPub(parent: ExtendedKey, index: number): ExtendedKey;
}
declare class BaseBip32KeyDeriver implements Bip32KeyDeriver {
    private key;
    private curve;
    constructor(key: Buffer, curve: CurveForKD);
    generateMasterKeyFromSeed(seed: Buffer): ExtendedKey;
    N(extPriv: ExtendedKey): ExtendedKey;
    CKDPriv(parent: ExtendedKey, index: number): ExtendedKey;
    CKDPub(parent: ExtendedKey, index: number): ExtendedKey;
}
declare class ED25519Bip32KeyDeriver implements Bip32KeyDeriver {
    private key;
    private curve;
    constructor(key: Buffer, curve: BaseCurve);
    generateMasterKeyFromSeed(seed: Buffer): ExtendedKey;
    N(extPriv: ExtendedKey): ExtendedKey;
    CKDPriv(parent: ExtendedKey, index: number): ExtendedKey;
    CKDPub(parent: ExtendedKey, index: number): ExtendedKey;
}
export { ser256, parse256, ExtendedKey, Bip32KeyDeriver, BaseBip32KeyDeriver, ED25519Bip32KeyDeriver, };
