import { SignatureLike } from '@ethersproject/bytes'; import { providers } from 'ethers'; import BaseService from '../commons/BaseService'; import { EthereumTransactionTypeExtended, tEthereumAddress } from '../commons/types'; import { ERC20_2612Interface } from '../erc20-2612'; import { IERC20ServiceInterface } from '../erc20-contract'; import { StakedAaveV3 } from './typechain/IStakedAaveV3'; export interface StakingInterface { stakingContractAddress: tEthereumAddress; stake: (user: tEthereumAddress, amount: string, onBehalfOf?: tEthereumAddress) => Promise; redeem: (user: tEthereumAddress, amount: string) => Promise; cooldown: (user: tEthereumAddress) => EthereumTransactionTypeExtended[]; claimRewards: (user: tEthereumAddress, amount: string) => Promise; signStaking: (user: tEthereumAddress, amount: string, deadline: string) => Promise; stakeWithPermit: (user: tEthereumAddress, amount: string, signature: string, deadline: string) => Promise; claimRewardsAndStake: (user: tEthereumAddress, amount: string) => Promise; } declare type StakingServiceConfig = { TOKEN_STAKING_ADDRESS: string; }; export declare class StakingService extends BaseService implements StakingInterface { readonly stakingContractAddress: tEthereumAddress; readonly erc20Service: IERC20ServiceInterface; readonly erc20_2612Service: ERC20_2612Interface; constructor(provider: providers.Provider, stakingServiceConfig: StakingServiceConfig); signStaking(user: tEthereumAddress, amount: string, deadline: string): Promise; stakeWithPermit(user: tEthereumAddress, amount: string, signature: SignatureLike, deadline: string): Promise; stake(user: tEthereumAddress, amount: string, onBehalfOf?: tEthereumAddress): Promise; redeem(user: tEthereumAddress, amount: string): Promise; cooldown(user: tEthereumAddress): EthereumTransactionTypeExtended[]; claimRewards(user: tEthereumAddress, amount: string): Promise; claimRewardsAndStake(user: tEthereumAddress, amount: string): Promise; } export {}; //# sourceMappingURL=index.d.ts.map