import type { LogLevel } from './common.js'; export type InputABI = string | string[] | Record[] | Record; export declare enum ProcessorType { Block = "block", Reorg = "reorg", Transaction = "transaction", Event = "event" } export type Manifest = { manifest: string; defaultLogLevel?: LogLevel; flinkLogLevel?: LogLevel; cluster?: Cluster; namespace: string | Namespace; filterGroups?: FilterGroup[]; indexers?: Indexer[]; processors?: Processor[]; enrichers?: Enricher[]; workers?: Worker[]; solutions?: Solution[]; }; export type Solution> = { source: string; config: TConfig; }; export declare enum ClusterSize { tiny = "tiny", small = "small", medium = "medium", large = "large", custom = "custom" } type Cluster = { id: string; size?: ClusterSize; }; type Namespace = { id: string; }; type Processor = { id: string; enabled?: boolean; type?: ProcessorType.Event; handler: string; env?: EnvItem[]; abi?: InputABI; acceptUnknownTopics?: boolean; } | { id: string; enabled?: boolean; type?: ProcessorType.Transaction; handler: string; env?: EnvItem[]; abi?: InputABI; } | { id: string; enabled?: boolean; type: ProcessorType.Block | ProcessorType.Reorg | ProcessorType.Transaction; handler: string; env?: EnvItem[]; }; type EnvItem = { name: string; value: string; }; export declare enum EnricherEngine { Rockset = "rockset", Flink = "flink" } export declare enum FlinkMode { Streaming = "streaming", Batch = "batch" } export type EnricherSize = 'tiny' | 'small' | 'medium' | 'large' | '2xlarge' | '3xlarge'; type Enricher = { id: string; enabled?: boolean; engine: EnricherEngine.Flink; logLevel?: LogLevel; inputSql?: string; size: EnricherSize; parameters?: Record; options?: { parallelism?: number; }; } | { id: string; enabled?: boolean; engine?: EnricherEngine.Rockset; logLevel?: LogLevel; handler: string; inputSql?: string; parameters?: Record; env?: EnvItem[]; }; type Worker = { id: string; enabled?: boolean; schedule: string; enricher: string; parameters?: Record; }; type FilterGroup = { id: string; addresses?: ({ chainId: string | number; address: `0x${string}` | '*'; location?: 'log-address' | 'tx-from' | 'tx-to'; } | { fromFile: string; })[]; topics?: (InputABI | { fromFile: string; })[]; description?: string; updateStrategy?: 'preserve' | 'replace'; }; type Source = { endpoint: string; weight?: number; }; type Indexer = { chainId: number; enabled: boolean; ingestionFilterGroup: string; processingFilterGroup: string; sources: Source[]; emitBlocks?: boolean; emitTransactions?: boolean; emitEvents?: boolean; emitTraces?: boolean; resolveRevertReason?: boolean; }; export {}; //# sourceMappingURL=manifest.d.ts.map