import { PriceTokenAmount } from "../../../../../../../common/tokens";
import { TonWeb3Private } from "../../../../../../../core/blockchain/web3-private-service/web3-private/ton-web3-private/ton-web3-private";
import { TonWeb3Public } from "../../../../../../../core/blockchain/web3-public-service/web3-public/ton-web3-public/ton-web3-public";
import { EncodeTransactionOptions } from "../../../../../../common/models/encode-transaction-options";
import { FeeInfo } from "../../../../../../cross-chain/calculation-manager/providers/common/models/fee-info";
import { TradeInfo } from "../../../../../../cross-chain/calculation-manager/providers/common/models/trade-info";
import { TransactionConfig } from 'web3-core';
import { GasFeeInfo } from '../evm-on-chain-trade/models/gas-fee-info';
import { OnChainTrade } from '../on-chain-trade';
import { TonOnChainTradeStruct, TonTradeAdditionalInfo } from './models/ton-on-chian-trade-types';
export declare abstract class TonOnChainTrade<T = undefined> extends OnChainTrade {
    readonly from: PriceTokenAmount;
    readonly to: PriceTokenAmount;
    readonly slippageTolerance: number;
    readonly feeInfo: FeeInfo;
    readonly gasFeeInfo: GasFeeInfo | null;
    readonly path: never[];
    private readonly routingPath;
    protected skipAmountCheck: boolean;
    readonly additionalInfo: TonTradeAdditionalInfo;
    protected get spenderAddress(): string;
    protected get web3Public(): TonWeb3Public;
    protected get web3Private(): TonWeb3Private;
    constructor(tradeStruct: TonOnChainTradeStruct, providerAddress: string);
    needApprove(): Promise<boolean>;
    approve(): Promise<void>;
    encodeApprove(): Promise<TransactionConfig>;
    encode(): Promise<T>;
    protected checkNativeBalance(): Promise<void>;
    protected makePreSwapChecks(options: EncodeTransactionOptions): Promise<void>;
    /**
     * recalculates and returns output stringWeiAmount
     */
    protected abstract calculateOutputAmount(options: EncodeTransactionOptions): Promise<string>;
    getTradeInfo(): TradeInfo;
}
