import type { Database } from '../database/index.js'; import type { Common } from '../internal/common.js'; import type { Chain, Event, EventCallback, IndexingBuild } from '../internal/types.js'; import type { Rpc } from '../rpc/index.js'; import { type RealtimeSyncEvent } from '../sync-realtime/index.js'; import type { ChildAddresses, SyncProgress } from "./index.js"; export type RealtimeEvent = { type: "block"; events: Event[]; chain: Chain; checkpoint: string; blockCallback?: (isAccepted: boolean) => void; } | { type: "reorg"; chain: Chain; checkpoint: string; } | { type: "finalize"; chain: Chain; checkpoint: string; }; export declare function getRealtimeEventsOmnichain(params: { common: Common; indexingBuild: Pick; perChainSync: Map, "type">[]; }>; database: Database; pendingEvents: Event[]; }): AsyncGenerator; export declare function getRealtimeEventsMultichain(params: { common: Common; indexingBuild: Pick; perChainSync: Map, "type">[]; }>; database: Database; }): AsyncGenerator; export declare function getRealtimeEventsIsolated(params: { common: Common; indexingBuild: Pick; chain: Chain; syncProgress: SyncProgress; childAddresses: ChildAddresses; unfinalizedBlocks: Omit, "type">[]; database: Database; }): AsyncGenerator; export declare function getRealtimeEventGenerator(params: { common: Common; chain: Chain; rpc: Rpc; eventCallbacks: EventCallback[]; syncProgress: SyncProgress; childAddresses: ChildAddresses; database: Database; }): AsyncGenerator<{ chain: Chain; event: RealtimeSyncEvent; }, void, unknown>; export declare function handleRealtimeSyncEvent(event: RealtimeSyncEvent, params: { common: Common; chain: Chain; eventCallbacks: EventCallback[]; syncProgress: SyncProgress; unfinalizedBlocks: Omit, "type">[]; database: Database; }): Promise; /** * Merges multiple async generators into a single async generator while preserving * the order of "block" events. * * @dev "reorg" and "finalize" events are not ordered between chains. */ export declare function mergeAsyncGeneratorsWithRealtimeOrder(generators: AsyncGenerator<{ chain: Chain; event: RealtimeSyncEvent; }>[]): AsyncGenerator<{ chain: Chain; event: RealtimeSyncEvent; }>; //# sourceMappingURL=realtime.d.ts.map