/** * StreamCrafter React Component * Self-contained browser-based WHIP streaming component * Uses slab design system with Tokyo Night colors * * @example * import { StreamCrafter } from '@livepeer-frameworks/streamcrafter-react'; * import '@livepeer-frameworks/streamcrafter-react/streamcrafter.css'; * * */ import React from "react"; import type { IngestState, IngestStateContextV2, QualityProfile, FwThemePreset, StudioThemeOverrides } from "@livepeer-frameworks/streamcrafter-core"; import { type StudioLocale } from "@livepeer-frameworks/streamcrafter-core"; export interface StreamCrafterProps { /** Direct WHIP endpoint URL */ whipUrl?: string; /** Gateway URL for endpoint resolution (alternative to whipUrl) */ gatewayUrl?: string; /** Stream key for gateway mode */ streamKey?: string; /** Initial quality profile */ initialProfile?: QualityProfile; /** Auto-start camera on mount */ autoStartCamera?: boolean; /** Show settings panel by default */ showSettings?: boolean; /** Enable dev mode UI */ devMode?: boolean; /** Enable debug logging */ debug?: boolean; /** Enable compositor for multi-source composition */ enableCompositor?: boolean; /** Compositor configuration (renderer preference, resolution, etc.) */ compositorConfig?: { renderer?: "auto" | "webgpu" | "webgl" | "canvas2d"; width?: number; height?: number; frameRate?: number; }; /** Theme preset or custom overrides */ theme?: FwThemePreset | StudioThemeOverrides; /** Locale for i18n translations */ locale?: StudioLocale; /** Custom class name */ className?: string; /** State change callback */ onStateChange?: (state: IngestState, context?: IngestStateContextV2) => void; /** Error callback */ onError?: (error: string) => void; /** Composable children — replaces the default UI when provided. */ children?: React.ReactNode; } /** * Self-contained StreamCrafter component with slab design system. * Requires importing the CSS file separately. * * @example * import { StreamCrafter } from '@livepeer-frameworks/streamcrafter-react'; * import '@livepeer-frameworks/streamcrafter-react/streamcrafter.css'; * * // Direct WHIP endpoint * * * @example * // Via Gateway * */ declare const StreamCrafter: React.FC; export default StreamCrafter; export { StreamCrafter };