/// <reference types="node" resolution-mode="require"/>
import { EthAddress, GrumpkinAddress } from '@polyaztec/barretenberg/address';
import { AssetValue } from '@polyaztec/barretenberg/asset';
import { BridgeCallData } from '@polyaztec/barretenberg/bridge_call_data';
import { ClientEthereumBlockchain } from '@polyaztec/blockchain';
import { CoreSdk } from '../core_sdk/index.js';
export interface GetFeesOptions {
    userId?: GrumpkinAddress;
    userSpendingKeyRequired?: boolean;
    excludePendingNotes?: boolean;
    feeSignificantFigures?: number;
}
export declare class FeeCalculator {
    private readonly core;
    private readonly blockchain;
    constructor(core: CoreSdk, blockchain: ClientEthereumBlockchain);
    getDepositFees(assetId: number, options?: {
        feeSignificantFigures?: number;
    }): Promise<AssetValue[]>;
    getWithdrawFees(assetId: number, { recipient, ...options }?: GetFeesOptions & {
        recipient?: EthAddress;
        assetValue?: AssetValue;
    }): Promise<AssetValue[]>;
    getTransferFees(assetId: number, options?: GetFeesOptions): Promise<AssetValue[]>;
    getDefiFees(bridgeCallData: BridgeCallData, options?: GetFeesOptions & {
        assetValue?: AssetValue;
    }): Promise<AssetValue[]>;
    getRegisterFees(assetId: number, options?: {
        feeSignificantFigures?: number;
    }): Promise<AssetValue[]>;
    getAliasFee(alias: string, assetId: number): Promise<AssetValue>;
    getSgWithdrawFee(assetId: number, dstSgChainId: number, to: EthAddress): Promise<AssetValue>;
    getRecoverAccountFees(assetId: number, options?: {
        feeSignificantFigures?: number;
    }): Promise<AssetValue[]>;
    getAddSpendingKeyFees(assetId: number, options?: GetFeesOptions): Promise<{
        value: bigint;
        assetId: number;
    }[]>;
    getMigrateAccountFees(assetId: number, options?: {
        feeSignificantFigures?: number;
    }): Promise<{
        value: bigint;
        assetId: number;
    }[]>;
    getProofDataFees(assetId: number, proofs: Buffer[], options?: GetFeesOptions): Promise<{
        value: bigint;
        assetId: number;
    }[]>;
    private getTransactionFees;
    private getChainedTxsFee;
    private getAccountFees;
}
//# sourceMappingURL=fee_calculator.d.ts.map