import type { LivePrice, PriceCandle, PriceCandleResolution, PriceFeedInfo, PricePoint } from "./types.js"; interface RawFeed { symbol: string | null; base: string | null; quote: string | null; decimals: number | null; description: string | null; latestSpot: string | null; latestMark: string | null; latestBlockNumber: string | null; latestBlockTimestamp: string | null; latestUpdatedAtMs: string | null; latestSourceUpdatedAtMs: string | null; latestResynced: boolean | null; } interface RawPricePoint { id: string; base: string; requestId: string; spot: string; mark: string; blockNumber: string; blockTimestamp: string; txHash: string; } /** Live Feed subscription for one asset (the catalog row = current price). Pass * `quote` to pin a multi-quote base to one feed; the caller must supply `$quote` * in the subscription variables when set. */ export declare function subscriptionFeed(quote?: string): string; /** Live tick tape for one asset — Hasura re-pushes the latest `$limit` on every * new tick. Pass `quote` to pin a multi-quote base to one feed. */ export declare function subscriptionTicks(quote?: string): string; export declare function parseFeed(feed: RawFeed | undefined, assetHint?: string): PriceFeedInfo; export declare function parsePoint(p: RawPricePoint, decimals: number, assetHint?: string): PricePoint; /** * Hydrate one asset: its metadata + current price + the recent tick tape, in one * request. Used to get a fresh watch "roughly up to speed" before the live * subscription takes over. */ export declare function loadPriceSnapshot(url: string, asset: string, ticks: number, quote?: string): Promise<{ info: PriceFeedInfo; points: PricePoint[]; }>; /** Feed metadata + current price for one asset (one request). */ export declare function getPriceFeedInfo(url: string, asset: string, quote?: string): Promise; /** * The feed catalog — metadata + current price for every tracked asset, or a * filtered subset (one request). Omit `assets` for all; pass a list for a batch. * An explicit empty list returns no rows (not all) — a batch of zero is zero. */ export declare function listFeeds(url: string, assets?: string[], quote?: string): Promise; /** * Current price for a batch of assets (or all when `assets` is omitted), newest * snapshot per asset — the multi-asset "price wall". Skips assets with no * observations yet. */ export declare function getLivePrices(url: string, assets?: string[], quote?: string): Promise; /** * Historic ticks for one asset, newest first. Window with `from`/`to` (unix * seconds, chain time); page with `limit`. */ export declare function getPriceHistory(url: string, asset: string, opts?: { limit?: number; from?: number; to?: number; }, quote?: string): Promise; /** * OHLC candles for one asset + resolution — the MOST RECENT `limit` (or the * `from`/`to` window when given, unix seconds), returned OLDEST first so it's * chart-ready. Like a klines API: omitting the window yields the latest candles, * not the first ever. */ export declare function getPriceCandles(url: string, asset: string, resolution: PriceCandleResolution, opts?: { limit?: number; from?: number; to?: number; }, quote?: string): Promise; export {};