import { ArkAddress } from "../script/address";
import { SettlementEvent } from "../providers/ark";
import { AddressInfo, ArkTransaction, Coin, ExtendedCoin, ExtendedVirtualCoin, IWallet, SendBitcoinParams, SettleParams, WalletBalance, WalletConfig } from ".";
export declare class Wallet implements IWallet {
    private identity;
    private network;
    private onchainProvider;
    private onchainP2TR;
    private arkProvider?;
    private arkServerPublicKey?;
    private offchainTapscript?;
    private boardingTapscript?;
    static DUST_AMOUNT: bigint;
    static FEE_RATE: number;
    private constructor();
    static create(config: WalletConfig): Promise<Wallet>;
    get onchainAddress(): string;
    get boardingAddress(): ArkAddress;
    get boardingOnchainAddress(): string;
    get offchainAddress(): ArkAddress;
    getAddress(): Promise<AddressInfo>;
    getBalance(): Promise<WalletBalance>;
    getCoins(): Promise<Coin[]>;
    getVtxos(): Promise<ExtendedVirtualCoin[]>;
    private getVirtualCoins;
    getTransactionHistory(): Promise<ArkTransaction[]>;
    getBoardingTxs(): Promise<{
        boardingTxs: ArkTransaction[];
        roundsToIgnore: Set<string>;
    }>;
    getBoardingUtxos(): Promise<ExtendedCoin[]>;
    sendBitcoin(params: SendBitcoinParams, zeroFee?: boolean): Promise<string>;
    private isOffchainSuitable;
    private sendOnchain;
    private sendOffchain;
    settle(params?: SettleParams, eventCallback?: (event: SettlementEvent) => void): Promise<string>;
    private handleSettlementSigningEvent;
    private handleSettlementSigningNoncesGeneratedEvent;
    private handleSettlementFinalizationEvent;
}
