import { Address, GetContractReturnType, Hash, Hex, Log, TypedDataDomain } from 'viem';
import { warehouseAbi } from '../constants/abi/warehouse';
import { BaseClientMixin, BaseGasEstimatesMixin, BaseTransactions } from './base';
import { CallData, ReadContractArgs, SplitsClientConfig, TransactionConfig, TransactionFormat, WarehouseApproveBySig, WarehouseApproveBySigConfig, WarehouseApproveConfig, WarehouseBatchDepositConfig, WarehouseBatchTransferConfig, WarehouseBatchWithdrawConfig, WarehouseDepositConfig, WarehouseInvalidateNonceConfig, WarehouseSetOperatorConfig, WarehouseSetWithdrawConfig, WarehouseTemporaryApproveAndCallBySig, WarehouseTemporaryApproveAndCallBySigConfig, WarehouseTemporaryApproveAndCallConfig, WarehouseTransferConfig, WarehouseTransferFromConfig, WarehouseWithdrawConfig } from '../types';
import { SplitsPublicClient } from '../types';
type WarehouseAbiType = typeof warehouseAbi;
declare class WarehouseTransactions extends BaseTransactions {
    protected readonly _warehouseAbi: readonly [{
        readonly type: "constructor";
        readonly inputs: readonly [{
            readonly name: "_native_token_name";
            readonly type: "string";
            readonly internalType: "string";
        }, {
            readonly name: "_native_token_symbol";
            readonly type: "string";
            readonly internalType: "string";
        }];
        readonly stateMutability: "nonpayable";
    }, {
        readonly type: "function";
        readonly name: "APPROVE_AND_CALL_TYPE_HASH";
        readonly inputs: readonly [];
        readonly outputs: readonly [{
            readonly name: "";
            readonly type: "bytes32";
            readonly internalType: "bytes32";
        }];
        readonly stateMutability: "view";
    }, {
        readonly type: "function";
        readonly name: "DOMAIN_SEPARATOR";
        readonly inputs: readonly [];
        readonly outputs: readonly [{
            readonly name: "";
            readonly type: "bytes32";
            readonly internalType: "bytes32";
        }];
        readonly stateMutability: "view";
    }, {
        readonly type: "function";
        readonly name: "NATIVE_TOKEN";
        readonly inputs: readonly [];
        readonly outputs: readonly [{
            readonly name: "";
            readonly type: "address";
            readonly internalType: "address";
        }];
        readonly stateMutability: "view";
    }, {
        readonly type: "function";
        readonly name: "NATIVE_TOKEN_ID";
        readonly inputs: readonly [];
        readonly outputs: readonly [{
            readonly name: "";
            readonly type: "uint256";
            readonly internalType: "uint256";
        }];
        readonly stateMutability: "view";
    }, {
        readonly type: "function";
        readonly name: "PERCENTAGE_SCALE";
        readonly inputs: readonly [];
        readonly outputs: readonly [{
            readonly name: "";
            readonly type: "uint256";
            readonly internalType: "uint256";
        }];
        readonly stateMutability: "view";
    }, {
        readonly type: "function";
        readonly name: "allowance";
        readonly inputs: readonly [{
            readonly name: "owner";
            readonly type: "address";
            readonly internalType: "address";
        }, {
            readonly name: "spender";
            readonly type: "address";
            readonly internalType: "address";
        }, {
            readonly name: "tokenId";
            readonly type: "uint256";
            readonly internalType: "uint256";
        }];
        readonly outputs: readonly [{
            readonly name: "amount";
            readonly type: "uint256";
            readonly internalType: "uint256";
        }];
        readonly stateMutability: "view";
    }, {
        readonly type: "function";
        readonly name: "approve";
        readonly inputs: readonly [{
            readonly name: "_spender";
            readonly type: "address";
            readonly internalType: "address";
        }, {
            readonly name: "_id";
            readonly type: "uint256";
            readonly internalType: "uint256";
        }, {
            readonly name: "_amount";
            readonly type: "uint256";
            readonly internalType: "uint256";
        }];
        readonly outputs: readonly [{
            readonly name: "";
            readonly type: "bool";
            readonly internalType: "bool";
        }];
        readonly stateMutability: "nonpayable";
    }, {
        readonly type: "function";
        readonly name: "approveBySig";
        readonly inputs: readonly [{
            readonly name: "_owner";
            readonly type: "address";
            readonly internalType: "address";
        }, {
            readonly name: "_spender";
            readonly type: "address";
            readonly internalType: "address";
        }, {
            readonly name: "_operator";
            readonly type: "bool";
            readonly internalType: "bool";
        }, {
            readonly name: "_id";
            readonly type: "uint256";
            readonly internalType: "uint256";
        }, {
            readonly name: "_amount";
            readonly type: "uint256";
            readonly internalType: "uint256";
        }, {
            readonly name: "_nonce";
            readonly type: "uint256";
            readonly internalType: "uint256";
        }, {
            readonly name: "_deadline";
            readonly type: "uint48";
            readonly internalType: "uint48";
        }, {
            readonly name: "_signature";
            readonly type: "bytes";
            readonly internalType: "bytes";
        }];
        readonly outputs: readonly [{
            readonly name: "";
            readonly type: "bool";
            readonly internalType: "bool";
        }];
        readonly stateMutability: "nonpayable";
    }, {
        readonly type: "function";
        readonly name: "balanceOf";
        readonly inputs: readonly [{
            readonly name: "owner";
            readonly type: "address";
            readonly internalType: "address";
        }, {
            readonly name: "id";
            readonly type: "uint256";
            readonly internalType: "uint256";
        }];
        readonly outputs: readonly [{
            readonly name: "amount";
            readonly type: "uint256";
            readonly internalType: "uint256";
        }];
        readonly stateMutability: "view";
    }, {
        readonly type: "function";
        readonly name: "batchDeposit";
        readonly inputs: readonly [{
            readonly name: "_receivers";
            readonly type: "address[]";
            readonly internalType: "address[]";
        }, {
            readonly name: "_token";
            readonly type: "address";
            readonly internalType: "address";
        }, {
            readonly name: "_amounts";
            readonly type: "uint256[]";
            readonly internalType: "uint256[]";
        }];
        readonly outputs: readonly [];
        readonly stateMutability: "payable";
    }, {
        readonly type: "function";
        readonly name: "batchTransfer";
        readonly inputs: readonly [{
            readonly name: "_receivers";
            readonly type: "address[]";
            readonly internalType: "address[]";
        }, {
            readonly name: "_token";
            readonly type: "address";
            readonly internalType: "address";
        }, {
            readonly name: "_amounts";
            readonly type: "uint256[]";
            readonly internalType: "uint256[]";
        }];
        readonly outputs: readonly [];
        readonly stateMutability: "nonpayable";
    }, {
        readonly type: "function";
        readonly name: "decimals";
        readonly inputs: readonly [{
            readonly name: "id";
            readonly type: "uint256";
            readonly internalType: "uint256";
        }];
        readonly outputs: readonly [{
            readonly name: "";
            readonly type: "uint8";
            readonly internalType: "uint8";
        }];
        readonly stateMutability: "view";
    }, {
        readonly type: "function";
        readonly name: "deposit";
        readonly inputs: readonly [{
            readonly name: "_receiver";
            readonly type: "address";
            readonly internalType: "address";
        }, {
            readonly name: "_token";
            readonly type: "address";
            readonly internalType: "address";
        }, {
            readonly name: "_amount";
            readonly type: "uint256";
            readonly internalType: "uint256";
        }];
        readonly outputs: readonly [];
        readonly stateMutability: "payable";
    }, {
        readonly type: "function";
        readonly name: "eip712Domain";
        readonly inputs: readonly [];
        readonly outputs: readonly [{
            readonly name: "fields";
            readonly type: "bytes1";
            readonly internalType: "bytes1";
        }, {
            readonly name: "name";
            readonly type: "string";
            readonly internalType: "string";
        }, {
            readonly name: "version";
            readonly type: "string";
            readonly internalType: "string";
        }, {
            readonly name: "chainId";
            readonly type: "uint256";
            readonly internalType: "uint256";
        }, {
            readonly name: "verifyingContract";
            readonly type: "address";
            readonly internalType: "address";
        }, {
            readonly name: "salt";
            readonly type: "bytes32";
            readonly internalType: "bytes32";
        }, {
            readonly name: "extensions";
            readonly type: "uint256[]";
            readonly internalType: "uint256[]";
        }];
        readonly stateMutability: "view";
    }, {
        readonly type: "function";
        readonly name: "invalidateNonce";
        readonly inputs: readonly [{
            readonly name: "_nonce";
            readonly type: "uint256";
            readonly internalType: "uint256";
        }];
        readonly outputs: readonly [];
        readonly stateMutability: "nonpayable";
    }, {
        readonly type: "function";
        readonly name: "isOperator";
        readonly inputs: readonly [{
            readonly name: "owner";
            readonly type: "address";
            readonly internalType: "address";
        }, {
            readonly name: "operator";
            readonly type: "address";
            readonly internalType: "address";
        }];
        readonly outputs: readonly [{
            readonly name: "approved";
            readonly type: "bool";
            readonly internalType: "bool";
        }];
        readonly stateMutability: "view";
    }, {
        readonly type: "function";
        readonly name: "isValidNonce";
        readonly inputs: readonly [{
            readonly name: "_from";
            readonly type: "address";
            readonly internalType: "address";
        }, {
            readonly name: "_nonce";
            readonly type: "uint256";
            readonly internalType: "uint256";
        }];
        readonly outputs: readonly [{
            readonly name: "";
            readonly type: "bool";
            readonly internalType: "bool";
        }];
        readonly stateMutability: "view";
    }, {
        readonly type: "function";
        readonly name: "name";
        readonly inputs: readonly [{
            readonly name: "id";
            readonly type: "uint256";
            readonly internalType: "uint256";
        }];
        readonly outputs: readonly [{
            readonly name: "";
            readonly type: "string";
            readonly internalType: "string";
        }];
        readonly stateMutability: "view";
    }, {
        readonly type: "function";
        readonly name: "nonceBitMap";
        readonly inputs: readonly [{
            readonly name: "account";
            readonly type: "address";
            readonly internalType: "address";
        }, {
            readonly name: "word";
            readonly type: "uint256";
            readonly internalType: "uint256";
        }];
        readonly outputs: readonly [{
            readonly name: "bitMap";
            readonly type: "uint256";
            readonly internalType: "uint256";
        }];
        readonly stateMutability: "view";
    }, {
        readonly type: "function";
        readonly name: "setOperator";
        readonly inputs: readonly [{
            readonly name: "_operator";
            readonly type: "address";
            readonly internalType: "address";
        }, {
            readonly name: "_approved";
            readonly type: "bool";
            readonly internalType: "bool";
        }];
        readonly outputs: readonly [{
            readonly name: "";
            readonly type: "bool";
            readonly internalType: "bool";
        }];
        readonly stateMutability: "nonpayable";
    }, {
        readonly type: "function";
        readonly name: "setWithdrawConfig";
        readonly inputs: readonly [{
            readonly name: "_config";
            readonly type: "tuple";
            readonly internalType: "struct SplitsWarehouse.WithdrawConfig";
            readonly components: readonly [{
                readonly name: "incentive";
                readonly type: "uint16";
                readonly internalType: "uint16";
            }, {
                readonly name: "paused";
                readonly type: "bool";
                readonly internalType: "bool";
            }];
        }];
        readonly outputs: readonly [];
        readonly stateMutability: "nonpayable";
    }, {
        readonly type: "function";
        readonly name: "supportsInterface";
        readonly inputs: readonly [{
            readonly name: "_interfaceId";
            readonly type: "bytes4";
            readonly internalType: "bytes4";
        }];
        readonly outputs: readonly [{
            readonly name: "supported";
            readonly type: "bool";
            readonly internalType: "bool";
        }];
        readonly stateMutability: "view";
    }, {
        readonly type: "function";
        readonly name: "symbol";
        readonly inputs: readonly [{
            readonly name: "id";
            readonly type: "uint256";
            readonly internalType: "uint256";
        }];
        readonly outputs: readonly [{
            readonly name: "";
            readonly type: "string";
            readonly internalType: "string";
        }];
        readonly stateMutability: "view";
    }, {
        readonly type: "function";
        readonly name: "temporaryApproveAndCall";
        readonly inputs: readonly [{
            readonly name: "_spender";
            readonly type: "address";
            readonly internalType: "address";
        }, {
            readonly name: "_operator";
            readonly type: "bool";
            readonly internalType: "bool";
        }, {
            readonly name: "_id";
            readonly type: "uint256";
            readonly internalType: "uint256";
        }, {
            readonly name: "_amount";
            readonly type: "uint256";
            readonly internalType: "uint256";
        }, {
            readonly name: "_target";
            readonly type: "address";
            readonly internalType: "address";
        }, {
            readonly name: "_data";
            readonly type: "bytes";
            readonly internalType: "bytes";
        }];
        readonly outputs: readonly [{
            readonly name: "";
            readonly type: "bool";
            readonly internalType: "bool";
        }];
        readonly stateMutability: "nonpayable";
    }, {
        readonly type: "function";
        readonly name: "temporaryApproveAndCallBySig";
        readonly inputs: readonly [{
            readonly name: "_owner";
            readonly type: "address";
            readonly internalType: "address";
        }, {
            readonly name: "_spender";
            readonly type: "address";
            readonly internalType: "address";
        }, {
            readonly name: "_operator";
            readonly type: "bool";
            readonly internalType: "bool";
        }, {
            readonly name: "_id";
            readonly type: "uint256";
            readonly internalType: "uint256";
        }, {
            readonly name: "_amount";
            readonly type: "uint256";
            readonly internalType: "uint256";
        }, {
            readonly name: "_target";
            readonly type: "address";
            readonly internalType: "address";
        }, {
            readonly name: "_data";
            readonly type: "bytes";
            readonly internalType: "bytes";
        }, {
            readonly name: "_nonce";
            readonly type: "uint256";
            readonly internalType: "uint256";
        }, {
            readonly name: "_deadline";
            readonly type: "uint48";
            readonly internalType: "uint48";
        }, {
            readonly name: "_signature";
            readonly type: "bytes";
            readonly internalType: "bytes";
        }];
        readonly outputs: readonly [{
            readonly name: "";
            readonly type: "bool";
            readonly internalType: "bool";
        }];
        readonly stateMutability: "nonpayable";
    }, {
        readonly type: "function";
        readonly name: "transfer";
        readonly inputs: readonly [{
            readonly name: "_receiver";
            readonly type: "address";
            readonly internalType: "address";
        }, {
            readonly name: "_id";
            readonly type: "uint256";
            readonly internalType: "uint256";
        }, {
            readonly name: "_amount";
            readonly type: "uint256";
            readonly internalType: "uint256";
        }];
        readonly outputs: readonly [{
            readonly name: "";
            readonly type: "bool";
            readonly internalType: "bool";
        }];
        readonly stateMutability: "nonpayable";
    }, {
        readonly type: "function";
        readonly name: "transferFrom";
        readonly inputs: readonly [{
            readonly name: "_sender";
            readonly type: "address";
            readonly internalType: "address";
        }, {
            readonly name: "_receiver";
            readonly type: "address";
            readonly internalType: "address";
        }, {
            readonly name: "_id";
            readonly type: "uint256";
            readonly internalType: "uint256";
        }, {
            readonly name: "_amount";
            readonly type: "uint256";
            readonly internalType: "uint256";
        }];
        readonly outputs: readonly [{
            readonly name: "";
            readonly type: "bool";
            readonly internalType: "bool";
        }];
        readonly stateMutability: "nonpayable";
    }, {
        readonly type: "function";
        readonly name: "withdraw";
        readonly inputs: readonly [{
            readonly name: "_owner";
            readonly type: "address";
            readonly internalType: "address";
        }, {
            readonly name: "_tokens";
            readonly type: "address[]";
            readonly internalType: "address[]";
        }, {
            readonly name: "_amounts";
            readonly type: "uint256[]";
            readonly internalType: "uint256[]";
        }, {
            readonly name: "_withdrawer";
            readonly type: "address";
            readonly internalType: "address";
        }];
        readonly outputs: readonly [];
        readonly stateMutability: "nonpayable";
    }, {
        readonly type: "function";
        readonly name: "withdraw";
        readonly inputs: readonly [{
            readonly name: "_owner";
            readonly type: "address";
            readonly internalType: "address";
        }, {
            readonly name: "_token";
            readonly type: "address";
            readonly internalType: "address";
        }];
        readonly outputs: readonly [];
        readonly stateMutability: "nonpayable";
    }, {
        readonly type: "function";
        readonly name: "withdrawConfig";
        readonly inputs: readonly [{
            readonly name: "owner";
            readonly type: "address";
            readonly internalType: "address";
        }];
        readonly outputs: readonly [{
            readonly name: "incentive";
            readonly type: "uint16";
            readonly internalType: "uint16";
        }, {
            readonly name: "paused";
            readonly type: "bool";
            readonly internalType: "bool";
        }];
        readonly stateMutability: "view";
    }, {
        readonly type: "event";
        readonly name: "Approval";
        readonly inputs: readonly [{
            readonly name: "owner";
            readonly type: "address";
            readonly indexed: true;
            readonly internalType: "address";
        }, {
            readonly name: "spender";
            readonly type: "address";
            readonly indexed: true;
            readonly internalType: "address";
        }, {
            readonly name: "id";
            readonly type: "uint256";
            readonly indexed: true;
            readonly internalType: "uint256";
        }, {
            readonly name: "amount";
            readonly type: "uint256";
            readonly indexed: false;
            readonly internalType: "uint256";
        }];
        readonly anonymous: false;
    }, {
        readonly type: "event";
        readonly name: "EIP712DomainChanged";
        readonly inputs: readonly [];
        readonly anonymous: false;
    }, {
        readonly type: "event";
        readonly name: "NonceInvalidation";
        readonly inputs: readonly [{
            readonly name: "owner";
            readonly type: "address";
            readonly indexed: true;
            readonly internalType: "address";
        }, {
            readonly name: "nonce";
            readonly type: "uint256";
            readonly indexed: true;
            readonly internalType: "uint256";
        }];
        readonly anonymous: false;
    }, {
        readonly type: "event";
        readonly name: "OperatorSet";
        readonly inputs: readonly [{
            readonly name: "owner";
            readonly type: "address";
            readonly indexed: true;
            readonly internalType: "address";
        }, {
            readonly name: "spender";
            readonly type: "address";
            readonly indexed: true;
            readonly internalType: "address";
        }, {
            readonly name: "approved";
            readonly type: "bool";
            readonly indexed: false;
            readonly internalType: "bool";
        }];
        readonly anonymous: false;
    }, {
        readonly type: "event";
        readonly name: "Transfer";
        readonly inputs: readonly [{
            readonly name: "caller";
            readonly type: "address";
            readonly indexed: false;
            readonly internalType: "address";
        }, {
            readonly name: "sender";
            readonly type: "address";
            readonly indexed: true;
            readonly internalType: "address";
        }, {
            readonly name: "receiver";
            readonly type: "address";
            readonly indexed: true;
            readonly internalType: "address";
        }, {
            readonly name: "id";
            readonly type: "uint256";
            readonly indexed: true;
            readonly internalType: "uint256";
        }, {
            readonly name: "amount";
            readonly type: "uint256";
            readonly indexed: false;
            readonly internalType: "uint256";
        }];
        readonly anonymous: false;
    }, {
        readonly type: "event";
        readonly name: "Withdraw";
        readonly inputs: readonly [{
            readonly name: "owner";
            readonly type: "address";
            readonly indexed: true;
            readonly internalType: "address";
        }, {
            readonly name: "token";
            readonly type: "address";
            readonly indexed: true;
            readonly internalType: "address";
        }, {
            readonly name: "withdrawer";
            readonly type: "address";
            readonly indexed: true;
            readonly internalType: "address";
        }, {
            readonly name: "amount";
            readonly type: "uint256";
            readonly indexed: false;
            readonly internalType: "uint256";
        }, {
            readonly name: "reward";
            readonly type: "uint256";
            readonly indexed: false;
            readonly internalType: "uint256";
        }];
        readonly anonymous: false;
    }, {
        readonly type: "event";
        readonly name: "WithdrawConfigUpdated";
        readonly inputs: readonly [{
            readonly name: "owner";
            readonly type: "address";
            readonly indexed: true;
            readonly internalType: "address";
        }, {
            readonly name: "config";
            readonly type: "tuple";
            readonly indexed: false;
            readonly internalType: "struct SplitsWarehouse.WithdrawConfig";
            readonly components: readonly [{
                readonly name: "incentive";
                readonly type: "uint16";
                readonly internalType: "uint16";
            }, {
                readonly name: "paused";
                readonly type: "bool";
                readonly internalType: "bool";
            }];
        }];
        readonly anonymous: false;
    }, {
        readonly type: "error";
        readonly name: "ExpiredSignature";
        readonly inputs: readonly [{
            readonly name: "deadline";
            readonly type: "uint48";
            readonly internalType: "uint48";
        }];
    }, {
        readonly type: "error";
        readonly name: "InvalidAck";
        readonly inputs: readonly [];
    }, {
        readonly type: "error";
        readonly name: "InvalidAmount";
        readonly inputs: readonly [];
    }, {
        readonly type: "error";
        readonly name: "InvalidNonce";
        readonly inputs: readonly [];
    }, {
        readonly type: "error";
        readonly name: "InvalidPermitParams";
        readonly inputs: readonly [];
    }, {
        readonly type: "error";
        readonly name: "InvalidShortString";
        readonly inputs: readonly [];
    }, {
        readonly type: "error";
        readonly name: "InvalidSigner";
        readonly inputs: readonly [];
    }, {
        readonly type: "error";
        readonly name: "LengthMismatch";
        readonly inputs: readonly [];
    }, {
        readonly type: "error";
        readonly name: "Overflow";
        readonly inputs: readonly [];
    }, {
        readonly type: "error";
        readonly name: "StringTooLong";
        readonly inputs: readonly [{
            readonly name: "str";
            readonly type: "string";
            readonly internalType: "string";
        }];
    }, {
        readonly type: "error";
        readonly name: "WithdrawalPaused";
        readonly inputs: readonly [{
            readonly name: "owner";
            readonly type: "address";
            readonly internalType: "address";
        }];
    }, {
        readonly type: "error";
        readonly name: "ZeroOwner";
        readonly inputs: readonly [];
    }];
    constructor(transactionClientArgs: SplitsClientConfig & TransactionConfig);
    protected _getWarehouseContract(chainId: number): GetContractReturnType<WarehouseAbiType, SplitsPublicClient>;
    protected _transfer({ receiverAddress: receiver, tokenAddress: token, amount, transactionOverrides, }: WarehouseTransferConfig): Promise<TransactionFormat>;
    protected _transferFrom({ senderAddress: sender, receiverAddress: receiver, tokenAddress: token, amount, transactionOverrides, }: WarehouseTransferFromConfig): Promise<TransactionFormat>;
    protected _approve({ spenderAddress: spender, tokenAddress: token, amount, transactionOverrides, }: WarehouseApproveConfig): Promise<TransactionFormat>;
    protected _setOperator({ operatorAddress: operator, approved, transactionOverrides, }: WarehouseSetOperatorConfig): Promise<TransactionFormat>;
    protected _invalidateNonce({ nonce, transactionOverrides, }: WarehouseInvalidateNonceConfig): Promise<TransactionFormat>;
    protected _temporaryApproveAndCall({ spenderAddress: spender, operator: operator, tokenAddress: token, amount, targetAddress: target, data, transactionOverrides, }: WarehouseTemporaryApproveAndCallConfig): Promise<TransactionFormat>;
    protected _temporaryApproveAndCallBySig({ ownerAddress: owner, spenderAddress: spender, operator, tokenAddress: token, amount, targetAddress: target, data, nonce, deadline, signature, transactionOverrides, }: WarehouseTemporaryApproveAndCallBySigConfig): Promise<TransactionFormat>;
    protected _approveBySig({ ownerAddress: owner, spenderAddress: spender, operator, tokenAddress: token, amount, nonce, deadline, signature, transactionOverrides, }: WarehouseApproveBySigConfig): Promise<TransactionFormat>;
    protected _deposit({ receiverAddress: receiver, tokenAddress: token, amount, transactionOverrides, }: WarehouseDepositConfig): Promise<TransactionFormat>;
    protected _batchDeposit({ receiversAddresses: receivers, tokenAddress: token, amounts, transactionOverrides, }: WarehouseBatchDepositConfig): Promise<TransactionFormat>;
    protected _withdraw({ ownerAddress: owner, tokenAddress: token, transactionOverrides, }: WarehouseWithdrawConfig): Promise<TransactionFormat>;
    protected _batchWithdraw({ ownerAddress: owner, tokensAddresses: tokens, amounts, withdrawerAddress: withdrawer, transactionOverrides, }: WarehouseBatchWithdrawConfig): Promise<TransactionFormat>;
    protected _batchTransfer({ receiversAddresses: receivers, tokenAddress: token, amounts, transactionOverrides, }: WarehouseBatchTransferConfig): Promise<TransactionFormat>;
    protected _setWithdrawConfig({ incentivePercent: incentive, paused, transactionOverrides, }: WarehouseSetWithdrawConfig): Promise<TransactionFormat>;
    protected _eip712Domain(chainId: number): Promise<{
        domain: TypedDataDomain;
    }>;
}
export declare class WarehouseClient extends WarehouseTransactions {
    readonly eventTopics: {
        [key: string]: Hex[];
    };
    readonly callData: WarehouseCallData;
    readonly estimateGas: WarehouseGasEstimates;
    readonly sign: WarehouseSignature;
    constructor(clientArgs: SplitsClientConfig);
    getName({ tokenAddress, chainId, }: ReadContractArgs & {
        tokenAddress: Address;
    }): Promise<{
        name: string;
    }>;
    getSymbol({ tokenAddress, chainId, }: ReadContractArgs & {
        tokenAddress: Address;
    }): Promise<{
        symbol: string;
    }>;
    getDecimals({ tokenAddress, chainId, }: ReadContractArgs & {
        tokenAddress: Address;
    }): Promise<{
        decimals: number;
    }>;
    getWithdrawConfig({ userAddress, chainId, }: ReadContractArgs & {
        userAddress: Address;
    }): Promise<{
        withdrawConfig: {
            incentive: number;
            paused: boolean;
        };
    }>;
    isValidNonce({ userAddress, userNonce, chainId, }: ReadContractArgs & {
        userAddress: Address;
        userNonce: bigint;
    }): Promise<{
        isValidNonce: boolean;
    }>;
    eip712Domain(args?: ReadContractArgs): Promise<{
        domain: TypedDataDomain;
    }>;
    isOperator({ ownerAddress, operatorAddress, chainId, }: ReadContractArgs & {
        ownerAddress: Address;
        operatorAddress: Address;
    }): Promise<{
        isOperator: boolean;
    }>;
    balanceOf({ ownerAddress, tokenAddress, chainId, }: ReadContractArgs & {
        ownerAddress: Address;
        tokenAddress: Address;
    }): Promise<{
        balance: bigint;
    }>;
    allowance({ ownerAddress, spenderAddress, tokenAddress, chainId, }: ReadContractArgs & {
        ownerAddress: Address;
        spenderAddress: Address;
        tokenAddress: Address;
    }): Promise<{
        allowance: bigint;
    }>;
    transfer(transferArgs: WarehouseTransferConfig): Promise<{
        event: Log;
    }>;
    transferFrom(transferFromArgs: WarehouseTransferFromConfig): Promise<{
        event: Log;
    }>;
    approve(approveArgs: WarehouseApproveConfig): Promise<{
        event: Log;
    }>;
    setOperator(setOperatorArgs: WarehouseSetOperatorConfig): Promise<{
        event: Log;
    }>;
    invalidateNonce(invalidateNonceArgs: WarehouseInvalidateNonceConfig): Promise<{
        event: Log;
    }>;
    temporaryApproveAndCall(temporaryApproveAndCallArgs: WarehouseTemporaryApproveAndCallConfig): Promise<{
        txHash: Hex;
    }>;
    temporaryApproveAndCallBySig(temporaryApproveAndCallBySigArgs: WarehouseTemporaryApproveAndCallBySigConfig): Promise<{
        txHash: Hex;
    }>;
    approveBySig(approveBySigArgs: WarehouseApproveBySigConfig): Promise<{
        event: Log;
    }>;
    deposit(depositArgs: WarehouseDepositConfig): Promise<{
        event: Log;
    }>;
    batchDeposit(batchDepositArgs: WarehouseBatchDepositConfig): Promise<{
        events: Log[];
    }>;
    _submitWithdrawTransaction(withdrawArgs: WarehouseWithdrawConfig): Promise<{
        txHash: Hash;
    }>;
    withdraw(withdrawArgs: WarehouseWithdrawConfig): Promise<{
        event: Log;
    }>;
    _submitBatchWithdrawTransaction(batchWithdrawArgs: WarehouseBatchWithdrawConfig): Promise<{
        txHash: Hash;
    }>;
    batchWithdraw(batchWithdrawArgs: WarehouseBatchWithdrawConfig): Promise<{
        events: Log[];
    }>;
    batchTransfer(batchTransferArgs: WarehouseBatchTransferConfig): Promise<{
        events: Log[];
    }>;
    setWithdrawConfig(setConfigArgs: WarehouseSetWithdrawConfig): Promise<{
        event: Log;
    }>;
}
export interface WarehouseClient extends BaseClientMixin {
}
declare class WarehouseGasEstimates extends WarehouseTransactions {
    constructor(clientArgs: SplitsClientConfig);
    transfer(transferArgs: WarehouseTransferConfig): Promise<bigint>;
    transferFrom(transferFromArgs: WarehouseTransferFromConfig): Promise<bigint>;
    approve(approveArgs: WarehouseApproveConfig): Promise<bigint>;
    setOperator(setOperatorArgs: WarehouseSetOperatorConfig): Promise<bigint>;
    invalidateNonce(invalidateNonceArgs: WarehouseInvalidateNonceConfig): Promise<bigint>;
    temporaryApproveAndCall(temporaryApproveAndCallArgs: WarehouseTemporaryApproveAndCallConfig): Promise<bigint>;
    temporaryApproveAndCallBySig(temporaryApproveAndCallBySigArgs: WarehouseTemporaryApproveAndCallBySigConfig): Promise<bigint>;
    approveBySig(approveBySigArgs: WarehouseApproveBySigConfig): Promise<bigint>;
    deposit(depositArgs: WarehouseDepositConfig): Promise<bigint>;
    batchDeposit(batchDepositArgs: WarehouseBatchDepositConfig): Promise<bigint>;
    withdraw(withdrawArgs: WarehouseWithdrawConfig): Promise<bigint>;
    batchWithdraw(batchWithdrawArgs: WarehouseBatchWithdrawConfig): Promise<bigint>;
    batchTransfer(batchTransferArgs: WarehouseBatchTransferConfig): Promise<bigint>;
    setWithdrawConfig(setConfigArgs: WarehouseSetWithdrawConfig): Promise<bigint>;
}
interface WarehouseGasEstimates extends BaseGasEstimatesMixin {
}
declare class WarehouseCallData extends WarehouseTransactions {
    constructor(clientArgs: SplitsClientConfig);
    transfer(transferArgs: WarehouseTransferConfig): Promise<CallData>;
    transferFrom(transferFromArgs: WarehouseTransferFromConfig): Promise<CallData>;
    approve(approveArgs: WarehouseApproveConfig): Promise<CallData>;
    setOperator(setOperatorArgs: WarehouseSetOperatorConfig): Promise<CallData>;
    invalidateNonce(invalidateNonceArgs: WarehouseInvalidateNonceConfig): Promise<CallData>;
    temporaryApproveAndCall(temporaryApproveAndCallArgs: WarehouseTemporaryApproveAndCallConfig): Promise<CallData>;
    temporaryApproveAndCallBySig(temporaryApproveAndCallBySigArgs: WarehouseTemporaryApproveAndCallBySigConfig): Promise<CallData>;
    approveBySig(approveBySigArgs: WarehouseApproveBySigConfig): Promise<CallData>;
    deposit(depositArgs: WarehouseDepositConfig): Promise<CallData>;
    batchDeposit(batchDepositArgs: WarehouseBatchDepositConfig): Promise<CallData>;
    withdraw(withdrawArgs: WarehouseWithdrawConfig): Promise<CallData>;
    batchWithdraw(withdrawArgs: WarehouseWithdrawConfig): Promise<CallData>;
    batchTransfer(batchTransferArgs: WarehouseBatchTransferConfig): Promise<CallData>;
    setWithdrawConfig(setConfigArgs: WarehouseSetWithdrawConfig): Promise<CallData>;
}
declare class WarehouseSignature extends WarehouseTransactions {
    constructor(clientArgs: SplitsClientConfig);
    approveBySig(approveBySigArgs: WarehouseApproveBySig): Promise<WarehouseApproveBySigConfig>;
    temporaryApproveAndCallBySig(temporaryApproveAndCallBySigArgs: WarehouseTemporaryApproveAndCallBySig): Promise<WarehouseApproveBySigConfig>;
}
export {};
