import type { OneSatServices } from "../services/OneSatServices"; import type { Inscription } from "./InscriptionIndexer"; import type { Sigma } from "./SigmaIndexer"; import { type IndexSummary, Indexer, type ParseContext, type ParseResult, type Txo } from "./types"; export interface Origin { outpoint?: string; nonce?: number; insc?: Inscription; map?: { [key: string]: unknown; }; sigma?: Sigma[]; } export declare class OriginIndexer extends Indexer { owners: Set; network: "mainnet" | "testnet"; private services; tag: string; name: string; constructor(owners: Set, network: "mainnet" | "testnet", services: OneSatServices); /** * Parse identifies 1-sat ordinal outputs and extracts basic data. * Origin tracking (determining if transfer vs new) is done in summarize() * since it requires cross-output and cross-input context. */ parse(txo: Txo): Promise; /** * Summarize determines origin tracking (transfer vs new origin) and * fetches metadata from OrdFS for transfers. */ summarize(ctx: ParseContext): Promise; /** * Resolve origins for all 1-sat outputs in the transaction. * This determines whether each is a new origin or a transfer. */ private resolveOrigins; }