import { AbiParametersToPrimitiveTypes, ExtractAbiFunction } from 'abitype'; import { Address, Hex, PublicClient } from 'viem'; import { Wallet } from '../../clients/contracts'; import { MslV5 } from '../../clients/contracts/MslV5'; import { MslV6 } from '../../clients/contracts/MslV6'; import { positionMigratorAbi } from '../../generated/blockchain/positionMigrator'; import { BaseContract } from './BaseContract'; type SmartMigrateArgs = AbiParametersToPrimitiveTypes['inputs']>[0]; /** * This contract allows migration from one position to another. * We will use this to migrate V3.0 loans to V3.1 and also support * capital efficient refinance from offers */ export declare class PositionMigrator extends BaseContract { msl: MslV6; private getDomain; signMigrationArgs({ structToSign }: { structToSign: SmartMigrateArgs['migrationArgs']; }): Promise<`0x${string}`>; constructor({ address, walletClient, msl, publicClient, }: { address: Address; msl: MslV6; walletClient: Wallet; publicClient?: PublicClient; }); smartRenegotiation({ currentBalance, previousMsl, repaymentCalldata, emitCalldata, }: { currentBalance: bigint; previousMsl: MslV5 | MslV6; repaymentCalldata: Hex; emitCalldata: Hex; }): Promise<{ txHash: `0x${string}`; waitTxInBlock: () => Promise; }>; } export {};