export type { ExternalFieldDefinition, ExternalScannerConfig, ScannerScheduleMode, } from './scanner-definition.js'; export type { ScannerId, StrategyId, Signal, ScanResult, } from '../types/scanner.js'; export { ScanStatus } from '../types/scanner.js'; import type { ScannerId, StrategyId, Signal } from '../types/scanner.js'; import type { ScannerScheduleMode } from './scanner-definition.js'; /** Market snapshot values associated with an instrument. */ export interface InstrumentContext { markPx: number; prevDayPx: number; midPx: number; dayNtlVlm: number; openInterest: number; funding: number; [key: string]: unknown; } /** Tradable instrument used as scanner candidate input. */ export interface Instrument { name: string; isDelisted: boolean; maxLeverage: number; context: InstrumentContext; } /** Single OHLCV candle point. */ export interface Candle { timestamp: number; open: number; high: number; low: number; close: number; volume: number; } /** Candles indexed by timeframe label (for example 1h, 4h). */ export interface CandleResult { candles: Record; /** Optional provider-side error message when data is incomplete/unavailable. */ error?: string; } /** Columnar candle representation used by indicator functions. */ export interface ParsedCandles { open: number[]; high: number[]; low: number[]; close: number[]; volume: number[]; } /** Open-interest sample used by OI history and related scanners. */ export interface OiSnapshot { oi: number; price: number; timestamp: number; } /** Simplified market row from SM/top-trader sources. */ export interface SmMarket { token: string; dex?: string; direction: string; pctOfTopTradersGain: number; traderCount: number; tokenPriceChangePct4h: number; [key: string]: unknown; } /** Common candidate shape scanners iterate over after prefiltering. */ export interface Candidate { name: string; context: InstrumentContext; maxLeverage: number; } /** Raw scanner execution payload before engine wraps into a ScanResult. */ export interface ScannerScanOutput { /** Scan timestamp in unix milliseconds. */ timestamp: number; /** Signals produced by the scanner in this run. */ signals: Signal[]; /** Number of candidates evaluated by scanner logic. */ scannedCount: number; /** Optional status/reason message for heartbeat/skips. */ reason?: string; /** Scanner-defined execution summary values. */ summary: Record; } /** Strategy-scoped shared artifact channels between scanners. */ export type SharedArtifactKey = string; /** Lightweight shared artifact wrapper with freshness timestamp. */ export interface ArtifactEnvelope { /** Last update time in unix milliseconds. */ updatedAt: number; /** Artifact payload. */ data: T; } /** * Strategy registration bootstrap metadata. * A given scanner id is expected to have one runtime instance per strategy. */ export interface StrategyRegistration { id: StrategyId; name: string; wallet?: string; defaultEnabledScanners?: ScannerId[]; scannerOverrides?: Record; } /** Options for reading a scanner history window. */ export interface ReadHistoryOptions { /** Maximum number of recent history entries to return. */ limit?: number; } /** Cross-scanner signal query filters for read APIs/tools. */ export interface ReadSignalsFilter { address?: string; scannerId?: ScannerId; minScore?: number; asset?: string; limit?: number; } //# sourceMappingURL=types.d.ts.map