import { type Address, type Hex } from "viem"; import { type EVCBatchItem } from "../../executionService/index.js"; import type { IDeploymentService } from "../../deploymentService/index.js"; import { type SwapQuote } from "../../swapService/index.js"; import type { EulerMigrationSource, EulerMigrationTarget } from "../positionMigrationServiceTypes.js"; import type { Account, IHasVaultAddress } from "../../../entities/Account.js"; export declare const BPS_SCALE = 10000n; export declare const SWAPPER_MODE_EXACT_IN = 0n; export declare const SWAPPER_HANDLER_GENERIC: "0x47656e6572696300000000000000000000000000000000000000000000000000"; export type PermitSignature = { v: number; r: Hex; s: Hex; }; export declare function applyBuffer(amount: bigint, bufferBps: bigint): bigint; export declare function assertSameAddress(actual: Address, expected: Address, message: string): void; export declare function assertEulerTarget(target: EulerMigrationTarget | undefined): EulerMigrationTarget; export declare function assertEulerSource(source: EulerMigrationSource | undefined): EulerMigrationSource; export declare function getSwapperAddress(deploymentService: IDeploymentService, chainId: number, override?: Address): Address; export declare function getSwapVerifierAddress(deploymentService: IDeploymentService, chainId: number): Address; export declare function resolveEulerSourceAmounts(source: EulerMigrationSource, account?: Account): { debtAmount: bigint; collateralAmount: bigint; collateralShares?: bigint; }; export declare function splitPermitSignature(signature: Hex): PermitSignature; export declare function getSwapQuoteInputAmount(quote: SwapQuote): bigint; export declare function assertSwapQuoteUsesSwapper(quote: SwapQuote, swapper: Address, label: string): void; export declare function getSwapQuoteSwapCalls(quote: SwapQuote, label: string): Hex[]; export declare function encodeGenericSwap(args: { target: Address; tokenIn: Address; tokenOut: Address; payload: Hex; }): Hex; export declare function encodeVerifyAmountMinAndDepositItem(args: { swapVerifier: Address; onBehalfOfAccount: Address; vault: Address; receiver: Address; amountMin: bigint; deadline: bigint; }): EVCBatchItem; export declare function encodeVerifyDebtMaxItem(args: { swapVerifier: Address; onBehalfOfAccount: Address; vault: Address; account: Address; amountMax: bigint; deadline: bigint; }): EVCBatchItem; /** * Verification item for a collateral swap into an EVault target: validates the * quote's own SkimMin verifier payload and emits it. The swap output is routed * to the target vault and credited via `skim`. */ export declare function encodeSwapQuoteVerificationItem(args: { quote: SwapQuote; swapVerifier: Address; vault: Address; account: Address; deadline: bigint; label: string; }): EVCBatchItem; /** * Verification item for a collateral swap into a generic ERC-4626 target * (e.g. EulerEarn) that has no `skim`: the quote must be requested with * `transferOutputToReceiver` so its Swapper calldata delivers the output to * the SwapVerifier, whose balance is then slippage-checked and deposited into * the target via `verifyAmountMinAndDeposit`. The quote's own TransferMin * verifier payload is validated for integrity but intentionally not emitted — * it is replaced by the deposit item. */ export declare function encodeDepositVerifiedSwapQuoteItem(args: { quote: SwapQuote; swapVerifier: Address; vault: Address; account: Address; onBehalfOfAccount: Address; deadline: bigint; label: string; }): EVCBatchItem; //# sourceMappingURL=shared.d.ts.map