import { IAirGapWallet } from '../interfaces/IAirGapWallet';
import { ICoinProtocol } from '../protocols/ICoinProtocol';
import { ProtocolSymbols } from '../utils/ProtocolSymbols';
export declare enum AirGapWalletStatus {
    ACTIVE = "active",
    HIDDEN = "hidden",
    DELETED = "deleted",
    TRANSIENT = "transient"
}
export interface SerializedAirGapWallet {
    protocolIdentifier: ProtocolSymbols;
    networkIdentifier: string;
    publicKey: string;
    isExtendedPublicKey: boolean;
    derivationPath: string;
    addresses: string[];
    masterFingerprint?: string;
    status?: AirGapWalletStatus;
    addressIndex?: number;
}
export declare class AirGapWallet implements IAirGapWallet {
    protocol: ICoinProtocol;
    publicKey: string;
    isExtendedPublicKey: boolean;
    derivationPath: string;
    masterFingerprint: string;
    status: AirGapWalletStatus;
    addressIndex?: number | undefined;
    addresses: string[];
    label: string | undefined;
    constructor(protocol: ICoinProtocol, publicKey: string, isExtendedPublicKey: boolean, derivationPath: string, masterFingerprint: string, status: AirGapWalletStatus, addressIndex?: number | undefined);
    readonly receivingPublicAddress: string;
    setProtocol(protocol: ICoinProtocol): Promise<void>;
    deriveAddresses(amount?: number): Promise<string[]>;
    toJSON(): Promise<SerializedAirGapWallet>;
}
