import type { IDeploymentService } from "../deploymentService/index.js"; import type { IProviderService } from "../providerService/index.js"; import type { TransactionPlan } from "../executionService/index.js"; import type { BuildUnlockREULPlanArgs, FetchREULLocksArgs, IREULLockService, REULLock } from "./reulLockServiceTypes.js"; export declare const reulLockAbi: readonly [{ readonly type: "function"; readonly name: "getLockedAmounts"; readonly inputs: readonly [{ readonly name: "account"; readonly type: "address"; }]; readonly outputs: readonly [{ readonly name: "timestamps"; readonly type: "uint256[]"; }, { readonly name: "amounts"; readonly type: "uint256[]"; }]; readonly stateMutability: "view"; }, { readonly type: "function"; readonly name: "getWithdrawAmountsByLockTimestamp"; readonly inputs: readonly [{ readonly name: "account"; readonly type: "address"; }, { readonly name: "lockTimestamp"; readonly type: "uint256"; }]; readonly outputs: readonly [{ readonly name: "unlockableAmount"; readonly type: "uint256"; }, { readonly name: "amountToBeBurned"; readonly type: "uint256"; }]; readonly stateMutability: "view"; }, { readonly type: "function"; readonly name: "withdrawToByLockTimestamp"; readonly inputs: readonly [{ readonly name: "account"; readonly type: "address"; }, { readonly name: "lockTimestamp"; readonly type: "uint256"; }, { readonly name: "allowRemainderLoss"; readonly type: "bool"; }]; readonly outputs: readonly [{ readonly name: "success"; readonly type: "bool"; }]; readonly stateMutability: "nonpayable"; }]; export declare class REULLockService implements IREULLockService { private readonly providerService; private readonly deploymentService; constructor(providerService: IProviderService, deploymentService: IDeploymentService); /** * Fetch all rEUL locks for an account, including the current unlockable and burn amounts for each lock. * * @param args.chainId - Chain whose rEUL contract should be queried. * @param args.account - Account whose locks should be fetched. * @param args.rEulAddress - Optional rEUL token address override for custom deployment metadata. * @param args.batchSize - Number of per-lock withdraw amount calls to issue concurrently. */ fetchLocks(args: FetchREULLocksArgs): Promise; /** * Build an rEUL unlock transaction plan. * * @param args.chainId - Chain where the unlock transaction will be sent. * @param args.account - Recipient/account argument passed to `withdrawToByLockTimestamp`. * @param args.lockTimestamp - Lock timestamp to unlock. * @param args.rEulAddress - Optional rEUL token address override for custom deployment metadata. * @param args.allowRemainderLoss - Explicit contract `allowRemainderLoss` argument. */ buildUnlockPlan(args: BuildUnlockREULPlanArgs): TransactionPlan; private resolveREULAddress; } //# sourceMappingURL=reulLockService.d.ts.map