import { type Address, type ChainId } from "../types/index.js"; import type { DcaCancelRequest, DcaCreateRequest, DcaOrdersPage, DcaOrdersRequest, DcaProvider, DcaProviderContext, PreparedDcaAction } from "../dca/interface.js"; interface EkuboDcaConfig { positions: Address; positionsNft: Address; twammExtension: Address; fallbackTwammPoolFee?: bigint; } export declare const ekuboDcaPresets: { readonly SN_MAIN: { readonly positions: Address; readonly positionsNft: Address; readonly twammExtension: Address; }; readonly SN_SEPOLIA: { readonly positions: Address; readonly positionsNft: Address; readonly twammExtension: Address; }; }; export interface EkuboDcaProviderOptions { /** Optional Ekubo API base URL override. */ apiBase?: string; /** Optional Ekubo swap quote API base URL override. */ quoteApiBase?: string; /** Optional fetch implementation override for custom runtimes/tests. */ fetcher?: typeof fetch; /** Optional minimum TVL filter passed to Ekubo pair-pools discovery. */ minTvlUsd?: number; /** Optional chain-aware preset overrides. */ presets?: Partial>>; } export declare function getEkuboDcaPreset(chainId: ChainId): EkuboDcaConfig; export declare class EkuboDcaProvider implements DcaProvider { readonly id = "ekubo"; private readonly apiBase; private readonly quoteApiBase; private readonly fetcher; private readonly minTvlUsd; private readonly presets; constructor(options?: EkuboDcaProviderOptions); supportsChain(chainId: ChainId): boolean; getOrders(context: DcaProviderContext, request: DcaOrdersRequest): Promise; prepareCreate(context: DcaProviderContext, request: DcaCreateRequest): Promise; prepareCancel(context: DcaProviderContext, request: DcaCancelRequest): Promise; private getPreset; private fetchOrdersPage; private resolvePoolFee; private resolvePoolFeeFromQuote; private buildCreateCalls; private buildCancelCalls; private getCurrentBlockTimestamp; private fetchJson; private getOrderInfos; private getOrderInfo; } export {}; //# sourceMappingURL=ekubo.d.ts.map