import type { FlowcoreEvent } from "../../contracts/event.js"; import type { Logger } from "../logger.js"; import type { PathwayPumpOptions, PumpState } from "./types.js"; /** * Registered pathway info needed for pump grouping */ interface PathwayRegistration { flowType: string; eventType: string; } /** * PathwayPump orchestrates data pump instances for auto-fetching events from Flowcore. * * Groups registered pathways by flowType and creates one FlowcoreDataPump per flowType group. * Events are routed to PathwaysBuilder.process() for handling. */ export declare class PathwayPump { private readonly stateManagerFactory; private readonly notifier; private readonly bufferSize; private readonly maxRedeliveryCount; private readonly concurrency; private readonly logger; private pulseConfig?; private pumps; private stateManagers; private running; private restartAttempts; private flowTypeEventTypes; private dataPumpConstructor; private tenant; private dataCore; private apiKey; private baseUrl; private processEvent; constructor(options: PathwayPumpOptions, logger?: Logger); /** * Configure the pump with pathway builder context */ configure(config: { tenant: string; dataCore: string; apiKey: string; baseUrl: string; processEvent: (pathway: string, event: FlowcoreEvent) => Promise; }): void; /** * Start pumps for the given pathway registrations. * Groups by flowType and creates one pump per group. */ start(pathways: PathwayRegistration[]): Promise; /** * Start (or restart) a pump for a specific flow type. */ private startPumpForFlowType; /** * Stop all running pumps */ stop(): Promise; /** * Reset all pumps to a specific position, or clear state and bounce if no position given. * Uses @flowcore/data-pump's restart() to reposition the cursor without recreating instances. * * @param position - Target position { timeBucket, eventId? }. If omitted, clears persisted state * and restarts pumps (pump will start from live position). * To replay from the very beginning, pass the first time bucket explicitly. */ reset(position?: PumpState, flowTypes?: string[]): Promise; setPulseConfig(pulseConfig: NonNullable): Promise; get isRunning(): boolean; get registeredFlowTypes(): string[]; private buildNotifierOptions; } export {}; //# sourceMappingURL=pathway-pump.d.ts.map