import * as PoolStatusBitIndex from "./PoolStatusBitIndex"
import * as PoolStatusBitFlag from "./PoolStatusBitFlag"
import * as RewardState from "./RewardState"

export { InitializeRewardParam } from "./InitializeRewardParam"
export type {
  InitializeRewardParamFields,
  InitializeRewardParamJSON,
} from "./InitializeRewardParam"
export { Observation } from "./Observation"
export type { ObservationFields, ObservationJSON } from "./Observation"
export { PositionRewardInfo } from "./PositionRewardInfo"
export type {
  PositionRewardInfoFields,
  PositionRewardInfoJSON,
} from "./PositionRewardInfo"
export { RewardInfo } from "./RewardInfo"
export type { RewardInfoFields, RewardInfoJSON } from "./RewardInfo"
export { TickState } from "./TickState"
export type { TickStateFields, TickStateJSON } from "./TickState"
export { PoolStatusBitIndex }

export type PoolStatusBitIndexKind =
  | PoolStatusBitIndex.OpenPositionOrIncreaseLiquidity
  | PoolStatusBitIndex.DecreaseLiquidity
  | PoolStatusBitIndex.CollectFee
  | PoolStatusBitIndex.CollectReward
  | PoolStatusBitIndex.Swap
export type PoolStatusBitIndexJSON =
  | PoolStatusBitIndex.OpenPositionOrIncreaseLiquidityJSON
  | PoolStatusBitIndex.DecreaseLiquidityJSON
  | PoolStatusBitIndex.CollectFeeJSON
  | PoolStatusBitIndex.CollectRewardJSON
  | PoolStatusBitIndex.SwapJSON

export { PoolStatusBitFlag }

export type PoolStatusBitFlagKind =
  | PoolStatusBitFlag.Enable
  | PoolStatusBitFlag.Disable
export type PoolStatusBitFlagJSON =
  | PoolStatusBitFlag.EnableJSON
  | PoolStatusBitFlag.DisableJSON

export { RewardState }

export type RewardStateKind =
  | RewardState.Uninitialized
  | RewardState.Initialized
  | RewardState.Opening
  | RewardState.Ended
export type RewardStateJSON =
  | RewardState.UninitializedJSON
  | RewardState.InitializedJSON
  | RewardState.OpeningJSON
  | RewardState.EndedJSON
