import type { AudioRecordStorage } from '../hooks/useScreenCapture'; import type { ChunkStorage } from '../lib/chunk-storage'; import type { OutputFormat } from '../types/editor'; type RecordingMode = 'screen-record' | 'audio-only'; /** Initial values overridable by a server wrapper (e.g. via @mostajs/config). * All optional — falls back to NEXT_PUBLIC_* env vars (build-time inlined). */ export interface PageDefaults { recordingMode?: RecordingMode; outputFormat?: OutputFormat; micEnabled?: boolean; webcamEnabled?: boolean; systemAudioEnabled?: boolean; recordAudioSeparately?: boolean; audioStorage?: AudioRecordStorage; audioServerUrl?: string; /** v1.11.9 — stockage des chunks vidéo. Default 'indexeddb' côté UI * (mais 'memory' reste possible pour conserver l'ancien comportement). */ videoStorage?: ChunkStorage; videoServerUrl?: string; /** v1.11.10 — vraie séparation vidéo/audio : video file = pure (pas * d'audio embedded), audio dans fichier séparé. * Force recordAudioSeparately=true. */ videoOnly?: boolean; /** v1.11.24+ : logo / signature watermark par défaut. URL fetch côté client * + position/size/opacity/margin. User peut override dans le sidebar editor. */ logo?: { url?: string; position?: 'top-right' | 'top-left' | 'bottom-right' | 'bottom-left'; sizePct?: number; opacity?: number; marginPct?: number; }; /** v1.12.0 — caméra par défaut sélectionnée au premier `startScreenShare`. * Ordre de résolution : `cameraDeviceId` > `cameraLabelHint` > facingMode 'user'. * L'utilisateur peut switch via le picker dans ``. */ cameraDeviceId?: string; /** v1.12.0 — fallback robuste si le deviceId n'est plus le même (ex : reset * privacy de Chrome qui régénère les IDs). Match le premier label qui * contient ce fragment, case-insensitive. Ex : 'Logitech', 'OBS', 'USB'. */ cameraLabelHint?: string; } export default function Page({ defaults }?: { defaults?: PageDefaults; }): import("react/jsx-runtime").JSX.Element; export {}; //# sourceMappingURL=CaptureEditorPage.d.ts.map