/**
 * Handling LLM streaming operations.
 *
 * @example
 * ```typescript
 * import {
 *   StreamOrchestrator,
 *   StreamConfig,
 *   LoggingObserver,
 *   LLMObsObserver,
 * } from "./stream/index.js";
 *
 * // Create configuration
 * const config = StreamConfig.create({
 *   provider: "vertex",
 *   model: "claude-sonnet-4-5",
 *   retry: { maxAttempts: 3 },
 *   fallback: { enabled: true },
 *   logging: { enabled: true, conversationId: "abc" },
 * });
 *
 * // Create orchestrator with observers
 * const orchestrator = new StreamOrchestrator({
 *   provider: createVercelProvider(),
 *   config,
 *   observers: [
 *     new LoggingObserver(),
 *     new LLMObsObserver({ tracer, logger }),
 *   ],
 *   logger,
 * });
 *
 * // Execute stream with full lifecycle management
 * const result = await orchestrator.execute({
 *   model,
 *   messages,
 *   tools,
 * });
 *
 * for await (const chunk of result.fullStream) {
 *   console.log(chunk);
 * }
 * ```
 */
export { StreamConfig } from "./config.js";
export type { RetryConfigOptions, ProviderType, CoreModelType, FallbackStrategy, FallbackConfigOptions, } from "./config.js";
export type { StreamObserver } from "./observer.js";
export { StreamOrchestrator } from "./orchestrator.js";
export { LoggingObserver, LLMObsObserver, ContextObserver, RetryNotificationObserver, wrapToolsForObservability, } from "./observers/index.js";
export type { LogRef } from "./observers/index.js";
//# sourceMappingURL=index.d.ts.map