import type { AllowanceProps, ApproveProps, SignTokenPermitProps, TransferProps } from './types.js'; import { erc20abi } from './abi/erc20abi.js'; import { type Address, type GetContractReturnType, type Hash, type WalletClient } from 'viem'; import { LidoSDKModule } from '../common/class-primitives/sdk-module.js'; import type { NoTxOptions, PermitSignature, TransactionOptions, TransactionResult } from '../core/types.js'; export declare abstract class AbstractLidoSDKErc20 extends LidoSDKModule { abstract contractAddress(): Promise
; getContract(): Promise>; balance(address?: Address): Promise; transfer(props: TransferProps): Promise; populateTransfer(props: NoTxOptions): Promise<{ to: `0x${string}`; from: import("viem").JsonRpcAccount; data: `0x${string}`; }>; simulateTransfer(props: NoTxOptions): Promise | import("viem").SimulateContractReturnType>; estimateTransfer(props: NoTxOptions): Promise; signPermit(props: SignTokenPermitProps): Promise; populatePermit(props: SignTokenPermitProps): Promise<{ readonly account: import("viem").JsonRpcAccount; readonly domain: { name: string; version: string; chainId: bigint; verifyingContract: Address; }; readonly types: { readonly EIP712Domain: readonly [{ readonly name: "name"; readonly type: "string"; }, { readonly name: "version"; readonly type: "string"; }, { readonly name: "chainId"; readonly type: "uint256"; }, { readonly name: "verifyingContract"; readonly type: "address"; }]; readonly Permit: readonly [{ readonly name: "owner"; readonly type: "address"; }, { readonly name: "spender"; readonly type: "address"; }, { readonly name: "value"; readonly type: "uint256"; }, { readonly name: "nonce"; readonly type: "uint256"; }, { readonly name: "deadline"; readonly type: "uint256"; }]; }; readonly primaryType: "Permit"; readonly message: { owner: `0x${string}`; spender: `0x${string}`; value: bigint; nonce: bigint; deadline: bigint; }; }>; approve(props: ApproveProps): Promise; populateApprove(props: NoTxOptions): Promise<{ to: `0x${string}`; from: `0x${string}`; data: `0x${string}`; }>; simulateApprove(props: NoTxOptions): Promise>; estimateApprove(props: NoTxOptions, options?: TransactionOptions): Promise; allowance({ account: accountProp, to, }: AllowanceProps): Promise; erc20Metadata(): Promise<{ name: string; symbol: string; decimals: number; domainSeparator: Hash; }>; totalSupply(): Promise; nonces(address: Address): Promise; erc721Domain(): Promise<{ name: string; version: string; chainId: bigint; verifyingContract: Address; }>; private parseProps; } //# sourceMappingURL=erc20.d.ts.map