import { LiquidityPool } from './models/liquidity-pool';
import { BaseDataProvider } from '../providers/data/base-data-provider';
import { Token } from './models/asset';
import { BaseDex } from './base-dex';
import { DatumParameters, PayToAddress, RequestConfig, SpendUTxO, SwapFee, UTxO } from '../types';
import { BaseApi } from './api/base-api';
import { Script } from 'lucid-cardano';
import { BaseWalletProvider } from '../providers/wallet/base-wallet-provider';
export declare class SundaeSwapV3 extends BaseDex {
    static readonly identifier: string;
    readonly api: BaseApi;
    /**
     * On-Chain constants.
     */
    readonly poolAddress: string;
    readonly lpTokenPolicyId: string;
    readonly cancelDatum: string;
    readonly orderScriptHash: string;
    readonly orderScript: Script;
    private readonly protocolFeeDefault;
    constructor(requestConfig?: RequestConfig);
    liquidityPoolAddresses(): Promise<string[]>;
    liquidityPools(provider: BaseDataProvider, wallet?: BaseWalletProvider): Promise<LiquidityPool[]>;
    liquidityPoolFromUtxo(provider: BaseDataProvider, utxo: UTxO, wallet?: BaseWalletProvider): Promise<LiquidityPool | undefined>;
    estimatedGive(liquidityPool: LiquidityPool, swapOutToken: Token, swapOutAmount: bigint): bigint;
    estimatedReceive(liquidityPool: LiquidityPool, swapInToken: Token, swapInAmount: bigint): bigint;
    priceImpactPercent(liquidityPool: LiquidityPool, swapInToken: Token, swapInAmount: bigint): number;
    buildSwapOrder(liquidityPool: LiquidityPool, swapParameters: DatumParameters, spendUtxos?: SpendUTxO[]): Promise<PayToAddress[]>;
    buildCancelSwapOrder(txOutputs: UTxO[], returnAddress: string): Promise<PayToAddress[]>;
    swapOrderFees(): SwapFee[];
}
