import * as _ton_ton from '@ton/ton'; import { Cell, ContractProvider, SenderArguments, Sender } from '@ton/ton'; import { AddressType, QueryIdType, AmountType } from '../../../../types.js'; import { ContractOptions } from '../../../core/Contract.js'; import { JettonMinter } from '../../../core/JettonMinter.js'; import { JettonWallet } from '../../../core/JettonWallet.js'; import { DEX_VERSION, DEX_TYPE } from '../../constants.js'; import { LpAccountV2_1 } from '../LpAccount/LpAccountV2_1.js'; interface BasePoolV2_1Options extends ContractOptions { gasConstants?: Partial; } declare class BasePoolV2_1 extends JettonMinter { static readonly version: DEX_VERSION; static readonly gasConstants: { collectFees: bigint; burn: bigint; }; readonly gasConstants: { collectFees: bigint; burn: bigint; }; constructor(address: AddressType, { gasConstants, ...options }?: BasePoolV2_1Options); createCollectFeesBody(params?: { queryId?: QueryIdType; }): Promise; getCollectFeeTxParams(provider: ContractProvider, params?: { gasAmount?: AmountType; queryId?: QueryIdType; }): Promise; sendCollectFees(provider: ContractProvider, via: Sender, params: Parameters[1]): Promise; createBurnBody(params: { amount: AmountType; dexCustomPayload?: Cell; queryId?: QueryIdType; }): Promise; getBurnTxParams(provider: ContractProvider, params: { amount: AmountType; userWalletAddress: AddressType; dexCustomPayload?: Cell; gasAmount?: AmountType; queryId?: QueryIdType; }): Promise; sendBurn(provider: ContractProvider, via: Sender, params: Parameters[1]): Promise; getPoolType(provider: ContractProvider): Promise; getLpAccountAddress(provider: ContractProvider, params: { ownerAddress: AddressType; }): Promise<_ton_ton.Address>; getLpAccount(provider: ContractProvider, params: { ownerAddress: AddressType; }): Promise; getJettonWallet(provider: ContractProvider, params: { ownerAddress: AddressType; }): Promise; getPoolData(provider: ContractProvider): Promise<{ isLocked: boolean; routerAddress: _ton_ton.Address; totalSupplyLP: bigint; reserve0: bigint; reserve1: bigint; token0WalletAddress: _ton_ton.Address; token1WalletAddress: _ton_ton.Address; lpFee: bigint; protocolFee: bigint; protocolFeeAddress: _ton_ton.Address | null; collectedToken0ProtocolFee: bigint; collectedToken1ProtocolFee: bigint; }>; protected implGetPoolData(provider: ContractProvider): Promise<{ commonPoolData: { isLocked: boolean; routerAddress: _ton_ton.Address; totalSupplyLP: bigint; reserve0: bigint; reserve1: bigint; token0WalletAddress: _ton_ton.Address; token1WalletAddress: _ton_ton.Address; lpFee: bigint; protocolFee: bigint; protocolFeeAddress: _ton_ton.Address | null; collectedToken0ProtocolFee: bigint; collectedToken1ProtocolFee: bigint; }; stack: _ton_ton.TupleReader; }>; } export { BasePoolV2_1, type BasePoolV2_1Options };