import { SwapStep } from '@dedust/sdk';
import { PriceToken, PriceTokenAmount } from "../../../../../../../common/tokens";
import { RubicStep } from "../../../../../../cross-chain/calculation-manager/providers/common/models/rubicStep";
export declare class DedustSwapService {
    private readonly factory;
    private readonly tonClient;
    private txSteps;
    private get mainnetFactoryAddress();
    constructor();
    /**
     * @returns string wei amount
     */
    calcOutputAmount(from: PriceTokenAmount, to: PriceToken): Promise<string>;
    sendTransaction(from: PriceTokenAmount, to: PriceTokenAmount, walletAddress: string, slippage: number, onHash: (hash: string) => void): Promise<void>;
    isMultistepSwap(): boolean;
    getRoutePath(): Promise<RubicStep[]>;
    /**
     * Stores found pools in calcOutputAmount method and reuses its in sendTransaction methods
     */
    private cacheStepsOnCalculation;
    /**
     * maybe uses more than 1 pool
     */
    private maybeMultistepSwap;
    private getPool;
    private getTokenAsset;
    private getVault;
    private swapTonToJetton;
    private swapJettonToTon;
    private swapJettonToJetton;
    /**
     * @param next on first iteration - it's payloadParams, then .next
     * @param payloadParams
     * @returns
     */
    private fillPayloadParams;
    checkSwapPayloadValid(payloadParams: SwapStep): boolean;
}
