import { TransactionResponse } from '@ethersproject/providers'; import { BigNumber, Contract } from 'ethers'; import { CrocContext } from './context'; import { CrocPoolView } from './pool'; import { CrocTokenView, TokenQty } from './tokens'; export interface CrocImpact { sellQty: string; buyQty: string; finalPrice: number; percentChange: number; } export interface CrocTransactionData { to: string; data: string; value: BigNumber; } export interface CrocSwapExecOpts { settlement?: boolean | { buyDexSurplus: boolean; sellDexSurplus: boolean; }; gasEst?: BigNumber; from?: string; } export interface CrocSwapPlanOpts { slippage?: number; } export declare class CrocSwapPlan { readonly poolIndex: number; constructor(sellToken: CrocTokenView, buyToken: CrocTokenView, qty: TokenQty, qtyIsBuy: boolean, poolIndex: number, context: Promise, opts?: CrocSwapPlanOpts); generateTxData(args?: CrocSwapExecOpts): Promise; generateSwapData(args?: CrocSwapExecOpts): Promise; generateSwapArgs(args?: CrocSwapExecOpts): Promise; swap(args?: CrocSwapExecOpts): Promise; swapArgs(args?: CrocSwapExecOpts): Promise; simulate(args?: CrocSwapExecOpts): Promise; private buildTxData; private hotPathBuildTxData; private userCmdBuildTxData; private swapBuildTxData; private sendTx; private callStatic; estimateGas(args?: CrocSwapExecOpts): Promise; txBase(): Promise; private hotPathCall; private swapCall; private userCmdCall; /** * Utility function to generate a "signed" raw transaction for a swap, used for L1 gas estimation on L2's like Scroll. * Extra 0xFF...F is appended to the unsigned raw transaction to simulate the signature and other missing fields. * * Note: This function is only intended for L1 gas estimation, and does not generate valid signed transactions. */ getFauxRawTx(args?: CrocSwapExecOpts): Promise<`0x${string}`>; calcImpact(): Promise; maskSurplusArgs(args?: CrocSwapExecOpts): number; private maskSurplusFlags; buildTxArgs(surplusArg: number, gasEst?: BigNumber): Promise; private attachEthMsg; calcSlipQty(): Promise; calcLimitPrice(): Promise; forceProxy(): CrocSwapPlan; useRouter(): CrocSwapPlan; useBypass(): CrocSwapPlan; readonly baseToken: CrocTokenView; readonly quoteToken: CrocTokenView; readonly qty: Promise; readonly sellBase: boolean; readonly qtyInBase: boolean; readonly slippage: number; readonly priceSlippage: number; readonly poolView: CrocPoolView; readonly context: Promise; readonly impact: Promise; protected callType: string; }