/**
* 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 };