import { Address } from '../../../../../node_modules/@btc-vision/transaction/build/index.js';
import { CallResult } from '../../../../contracts/CallResult.js';
import { IOP_NETContract } from '../opnet/IOP_NETContract.js';
export interface IMotoswapRouterContract extends IOP_NETContract {
    addLiquidity(tokenA: Address, tokenB: Address, amountADesired: bigint, amountBDesired: bigint, amountAMin: bigint, amountBMin: bigint, to: Address, deadline: bigint): Promise<CallResult<{
        amountA: bigint;
        amountB: bigint;
        liquidity: bigint;
    }>>;
    removeLiquidity(tokenA: Address, tokenB: Address, liquidity: bigint, amountAMin: bigint, amountBMin: bigint, to: Address, deadline: bigint): Promise<CallResult<{
        amountA: bigint;
        amountB: bigint;
    }>>;
    quote(amountA: bigint, reserveA: bigint, reserveB: bigint): Promise<CallResult<{
        quote: bigint;
    }>>;
    getAmountOut(amountIn: bigint, reserveIn: bigint, reserveOut: bigint): Promise<CallResult<{
        amountOut: bigint;
    }>>;
    getAmountIn(amountOut: bigint, reserveIn: bigint, reserveOut: bigint): Promise<CallResult<{
        amountIn: bigint;
    }>>;
    getAmountsOut(amountIn: bigint, path: Address[]): Promise<CallResult<{
        amountsOut: bigint[];
    }>>;
    getAmountsIn(amountOut: bigint, path: Address[]): Promise<CallResult<{
        amountsIn: bigint[];
    }>>;
    swapExactTokensForTokensSupportingFeeOnTransferTokens(amountIn: bigint, amountOutMin: bigint, path: Address[], to: Address, deadline: bigint): Promise<CallResult>;
    factory(): Promise<CallResult<{
        factory: Address;
    }>>;
}
