import { Effect, Stream, Scope } from 'effect';
declare const StreamingError_base: new = {}>(args: import("effect/Types").Equals extends true ? void : { readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }) => import("effect/Cause").YieldableError & {
readonly _tag: "StreamingError";
} & Readonly;
/**
* Error that occurs when streaming operations fail
*/
export declare class StreamingError extends StreamingError_base<{
readonly message: string;
readonly cause?: unknown;
}> {
}
/**
* Interface for event streaming
*/
export interface StreamHandlerService {
/**
* Subscribe to events for a specific stream
*/
readonly subscribeToStream: (streamId: TStreamId) => Effect.Effect, StreamingError, Scope.Scope>;
/**
* Publish an event to subscribers
*/
readonly publishToStream: (streamId: TStreamId, event: TEvent) => Effect.Effect;
/**
* Get metrics about current stream subscribers
*/
readonly getStreamMetrics: () => Effect.Effect<{
readonly activeStreams: number;
readonly totalEventsProcessed: number;
}, never, never>;
}
export {};
//# sourceMappingURL=StreamHandler.d.ts.map