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