import { Address } from '@btc-vision/transaction'; import { CallResult } from '../../../../contracts/CallResult.js'; import { OPNetEvent } from '../../../../contracts/OPNetEvent.js'; import { IOP20Contract } from '../opnet/IOP20Contract.js'; export type Reserves = { readonly reserve0: bigint; readonly reserve1: bigint; readonly blockTimestampLast: bigint; }; export type LiquidityRemovedEvent = { readonly sender: Address; readonly amount0: bigint; readonly amount1: bigint; readonly to: Address; }; export type LiquidityAddedEvent = { readonly sender: Address; readonly amount0: bigint; readonly amount1: bigint; }; export type SwappedEvent = { readonly sender: Address; readonly amount0In: bigint; readonly amount1In: bigint; readonly amount0Out: bigint; readonly amount1Out: bigint; readonly to: Address; }; export interface IMotoswapPoolContract extends Omit { token0(): Promise>; token1(): Promise>; getReserves(): Promise>; swap(amount0Out: bigint, amount1Out: bigint, to: string, data: Uint8Array): Promise]>>; skim(): Promise; kLast(): Promise>; burn(to: Address): Promise]>>; blockTimestampLast(): Promise>; sync(): Promise; price0CumulativeLast(): Promise>; price1CumulativeLast(): Promise>; MINIMUM_LIQUIDITY(): Promise>; mint(to: Address): Promise]>>; initialize(token0: Address, token1: Address): Promise; }