// src/streaming/interfaces.ts (can merge into core/interfaces.ts later if preferred)
import { PipelineContext, IStreamProcessor, StreamProcessingConfig } from '../core/interfaces';
import { Logger } from 'pino';

export interface IStreamSourceAdapter {
    initialize(config: any, logger: Logger): Promise<void>;
    // Method to start consuming messages and pass them to the processor
    consume(processor: IStreamProcessor<any, any>, context: PipelineContext): Promise<void>;
    shutdown(): Promise<void>;
}

// --- FlowLab Node Placeholder for Streaming ---
export interface IStreamingFlowNode { // extends IFlowLabNode ?
     readonly id: string;
     readonly type: '@flowlab/data:stream-processor';
     configure(config: StreamProcessingConfig): void;
     start(): Promise<void>;
     stop(): Promise<void>;
}