import { btc, GuardContract, TokenContract } from "../common";
import { CAT20State, GuardInfo, ProtocolState } from "@cat-protocol/cat-smartcontracts";
import { SignTxParams } from "@okxweb3/coin-base";
export declare function estimateFee(param: SignTxParams): Promise<{
    mergeTx: any;
    commitTx: any;
    revealTx: any;
} | {
    commitTx: any;
    revealTx: any;
    mergeTx?: undefined;
} | null>;
export declare function transfer(param: SignTxParams): Promise<{
    mergeTx: any;
    commitTx: any;
    revealTx: any;
} | {
    commitTx: any;
    revealTx: any;
    mergeTx?: undefined;
} | null>;
export declare const calcVsizeTransfer: (tokens: TokenContract[], guardContract: GuardContract, revealTx: btc.Transaction, guardInfo: GuardInfo, tokenTxs: Array<{
    prevTx: btc.Transaction;
    prevPrevTx: btc.Transaction;
    prevTokenInputIndex: number;
}>, tokenTapScript: string, guardTapScript: string, newState: ProtocolState, receiverTokenState: CAT20State, changeTokenState: null | CAT20State, satoshisChangeScript: btc.Script, minterP2TR: string) => Promise<{
    vsize: any;
    fee: number;
}>;
