import algosdk, { TransactionWithSigner } from 'algosdk'; import type { SwapMiddleware, SwapContext, FetchQuoteParams } from '@txnlab/deflex'; import { type AssetInformation } from './decoders'; export interface FirstStageMiddlewareConfig { appId: number | bigint; } export declare class FirstStageMiddleware implements SwapMiddleware { readonly name = "FirstStageDeflex"; readonly version = "1.0.0"; private readonly appId; private readonly algod; private readonly fsClientCache; constructor(algodClient: algosdk.Algodv2); private getClient; shouldApply(params: { fromASAID: bigint; toASAID: bigint; }): Promise; adjustQuoteParams(params: FetchQuoteParams): Promise; beforeSwap(context: SwapContext): Promise; afterSwap(context: SwapContext): Promise; private isOptedIn; getAssetInfo(assetId: bigint): Promise; private getUserBalance; private isFreezeEligible; private isFrozen; private computeContractTax; }