/** * @buzztrail-ai/presentation - Main Entry Point * * LiveKit-based presentation system with voice agent integration. * * This package enables embedding AI-powered slide presentations * with voice interaction using LiveKit and screenshare bots. * * ## Features * * - 🎙️ Voice agent integration via LiveKit * - 🖥️ Screenshare bot for slide presentations * - 🎨 Customizable themes and branding * - 🚪 Pre-conversation lead capture (gating) * - 📱 Responsive design * - ⚡ Lightweight * * ## Usage (NPM) * * ```typescript * import { createPresentation } from '@buzztrail-ai/presentation'; * * createPresentation('container-id', { * customerId: 'acme-corp', * deckId: 'deck-123', * gating: { enabled: true }, * onStart: () => console.log('Started'), * onEnd: () => console.log('Ended') * }); * ``` * * @packageDocumentation */ export { createPresentation, endPresentation, type PresentationConfig, } from './presentation'; export { createDemoExperience, endDemoExperience, } from './demo-experience'; export type { DemoExperienceConfig, DemoExperience, DemoState, DemoType, TimelineConfig, } from './types/demo'; export { DEMO_DEFAULTS } from './types/demo'; export { SessionManager, type SessionManagerConfig, } from './core/session-manager'; export type { Session, SessionOptions, SessionState, CreateSessionResponse, } from './types/session'; export type { SessionEvent, EventHandler, EventPayload, StateChangedPayload, ConnectedPayload, DisconnectedPayload, ReconnectingPayload, ConnectionQualityChangedPayload, ErrorPayload, ConnectionQuality, EventEmitter, } from './types/events'; export { BotSpawner, type BotSpawnerConfig, } from './core/bot-spawner'; export type { BotType, BotState, BotStatus, SpawnBotRequest, SpawnBotResponse, SpawnVoiceAgentOptions, SpawnScreenshareBotOptions, BotRecord, } from './types/bot'; export { ErrorHandler, type ErrorHandlerConfig, type ErrorContext, type ErrorHandlingResult, createSessionCreationError, createRoomConnectionError, createBotSpawnError, createNetworkTimeoutError, createConfigError, } from './core/error-handler'; export { PresentationError, SessionError, NetworkError, APIError, ConnectionError, BotError, AuthError, ConfigError, ErrorSeverity, ErrorCategory, RecoveryStrategy, isPresentationError, isSessionError, isNetworkError, isConnectionError, isBotError, type UserMessage, } from './types/errors'; export { GatingForm, type GatingConfig, type GatingLeadData, } from './gating'; export { fetchCustomerConfig, DEFAULT_CONFIG, validateCustomerConfig, ConfigValidationError } from '@buzztrail-ai/config-loader'; export { L, configureLogger, createScopedLogger } from '@buzztrail-ai/logger'; export { type ThemeConfig, type DailyTheme, toDailyTheme, DEFAULT_THEME } from '@buzztrail-ai/theme'; export { initGatingI18n as initI18n, t, changeLanguage, getCurrentLanguage, type GatingLanguage, translations } from '@buzztrail-ai/i18n'; export { SlideViewer, createSlideViewer, } from './components/slide-viewer'; export type { SlideViewerOptions, ViewerPosition, AspectRatio, LoadingState, ViewerState, ViewerDimensions, } from './types/viewer'; export { VideoTrackRenderer, attachVideoTrack, detachVideoTrack, } from './components/video-track-renderer'; export type { VideoTrackRendererOptions, } from './components/video-track-renderer'; export { SlideControls, } from './components/slide-controls'; export type { SlideControlsOptions, SlideControlsPosition, SlideControlsState, SlideCommand, SlideCommandType, CommandSource, SlideControlCommandRecord, } from './types/controls'; export { SlideCommander, } from './core/slide-commander'; export type { SlideCommanderOptions, } from './types/controls'; export { detectThemePreference, resolveThemeMode, applyThemeMode, watchThemePreference, applySlideViewerTheme, applySlideControlsTheme, applyBaseTheme, applyPresentationTheme, resetPresentationTheme, getCurrentTheme, createThemeManager, loadStylesheet, loadPresentationStyles, } from './styles/theme-overrides'; export type { ThemeMode, SlideViewerThemeConfig, SlideControlsThemeConfig, PresentationThemeConfig, } from './styles/theme-overrides';