import { Dex, DexName } from "../dexes"; import { ChainData, ChainType } from "../chains"; import { ActionType, FillerAddresses } from "../routes"; import { Token } from "../tokens"; import { WrapperType } from "../wrappers"; import { BridgeType } from "../bridges"; export interface PathInternal { fromChain: string; fromToken: string; toChain: string; toToken: string; actions: PathActionInternal[]; graph?: string; } export interface Path { fromChain: ChainData; fromToken: Token; toChain: ChainData; toToken: Token; actions: PathAction[]; graph?: string; } export interface PathActionInternal { type: ActionType; chainType: ChainType; fromChainId: string; toChainId: string; fromToken: string; toToken: string; data: Record; graph?: string; } export interface Buckets { [key: number]: string; } export interface ActionBaseData { dex: DexName | Dex; chainId: string; slippage: number; path: string[]; custom: Record; type: WrapperType | BridgeType; poolFee: number; poolId: string; isStable: boolean; exchangeId?: string; exchangeProvider?: string; reserve?: string; osmosisPools: { poolId: string; tokenOutDenom: string; }[]; buckets: Buckets; tickSpacing: number; binStep: number; address: string; wrapper: string; coinAddresses: string[]; name: string; provider: string; liquidityProvider: string; fillerAddress?: string; fillerAddresses?: FillerAddresses; } export interface PathAction { type: ActionType; chainType: ChainType; fromChain: ChainData; toChain: ChainData; fromToken: Token; toToken: Token; data: ActionBaseData; } export declare enum PathFeature { includeCoralPaths = "1", onlyCoralPaths = "2", includeCoralV2Paths = "3", onlyCoralV2Paths = "4", includeCoralV2PreHooks = "5", includeCoralV2PostHooks = "6", isExactOutput = "7" } export interface PathParams { fromChainId: string; toChainId: string; fromToken: string; toToken: string; amountInUsd: number; tokenAmount: number; features?: PathFeature[]; includeDexes?: string[]; excludeDexes?: string[]; }