import type { Asset, AssetType } from "@rarible/ethereum-api-client"; import type { Ethereum, EthereumTransaction } from "@rarible/ethereum-provider"; import type { Maybe } from "@rarible/types"; import type { EVMAddress } from "@rarible/types"; import type { TransferProxies } from "../config/type"; import type { SendFunction } from "../common/send-transaction"; import type { GetConfigByChainId } from "../config"; export type ApproveFunction = (owner: EVMAddress, asset: Asset, infinite: undefined | boolean) => Promise; export declare function approve(ethereum: Maybe, send: SendFunction, getConfig: GetConfigByChainId, owner: EVMAddress, asset: Asset, infinite?: undefined | boolean): Promise; export declare function pureApproveFn({ ethereum, send, operator, owner, asset, infinite, }: { ethereum: Maybe; send: SendFunction; operator: EVMAddress; owner: EVMAddress; asset: Asset; infinite: undefined | boolean; }): Promise; export declare function getAssetTransferProxy(assetClass: AssetType["assetClass"], proxies: TransferProxies): EVMAddress | undefined;