import { type TokenOperation } from "./common/routingPlan.js"; import { type RoutePlanner } from "./routers/universalRouter/routerCommands.js"; import type { PermitSingle } from '@uniswap/permit2-sdk'; import type { BigNumberish } from 'ethers'; import type { FeeOptions, PermitOptions } from 'blast-mainnet-few-v3-sdk-8'; import { Percent } from 'blast-mainnet-few-sdk-core-2'; import type { Validation } from 'blast-mainnet-few-router-sdk-20'; export type TokenOperationNodeType = 'SOURCE' | 'PASSING_THROUGH' | 'MERGING' | 'FORKING' | 'DESTINATION'; export declare const toNodeType: (tokenOp: TokenOperation) => TokenOperationNodeType; export declare const toAmountOutMinimum: (amountOut: bigint, slippageTolerance: number) => bigint; export declare const fromTokenUnits: (tokenUnits: number, decimals: number) => bigint; export declare const toTokenUnits: (tokenAmount: bigint, decimals: number) => number; export interface Permit2Permit extends PermitSingle { signature: string; } export type ApproveProtocol = { token: string; protocol: string; }; export type Permit2TransferFrom = { token: string; amount: string; recipient?: string; }; export type InputTokenOptions = { approval?: ApproveProtocol; permit2Permit?: Permit2Permit; permit2TransferFrom?: Permit2TransferFrom; }; export interface Permit2Permit extends PermitSingle { signature: string; } export declare function encodePermit(planner: RoutePlanner, permit2: Permit2Permit): void; export type FlatFeeOptions = { amount: BigNumberish; recipient: string; }; export interface RouterSwapOptions { /** * How much the execution price is allowed to move unfavorably from the trade execution price. */ slippageTolerance: Percent; /** * The account that should receive the output. If omitted, output is sent to msg.sender. */ recipient?: string; /** * Either deadline (when the transaction expires, in epoch seconds), or previousBlockhash. */ deadlineOrPreviousBlockhash?: Validation; /** * The optional permit parameters for spending the input. */ inputTokenPermit?: PermitOptions; /** * Optional information for taking a fee on output. */ fee?: FeeOptions; } export type SwapOptions = Omit & { inputTokenPermit?: Permit2Permit; payerIsRouter?: boolean; flatFee?: FlatFeeOptions; };