import type { CaptureQuality, ScreenShareFps } from "../../types.js"; import { estimateBitrate } from "../lib/screenBitrate.js"; import { type EncodedFrameCallback } from "./useNativeScreenCapture.js"; export { estimateBitrate }; /** Kept as a name because call sites use it. One list, in types.ts. */ export type ScreenShareQuality = CaptureQuality; export type { ScreenShareFps }; export declare const STANDARD_FPS_OPTIONS: ScreenShareFps[]; export declare const EXPERIMENTAL_FPS_OPTIONS: ScreenShareFps[]; export interface ScreenShareInterface { screenVideoStream: MediaStream | null; screenAudioStream: MediaStream | null; screenShareActive: boolean; /** True when OS-native audio capture is active (no phase cancellation needed). */ nativeAudioActive: boolean; /** True when native DXGI screen capture is available for high-FPS capture. */ nativeScreenCaptureAvailable: boolean; /** Codec used by the native HW encoder, or null if raw/inactive */ nativeEncodedCodec: "h264" | "hevc" | null; /** Subscribe to pre-encoded NAL frames from native capture */ subscribeEncodedFrames: (cb: EncodedFrameCallback) => () => void; startScreenShare: (withAudio: boolean, sourceId?: string) => Promise; stopScreenShare: () => void; } export declare const useScreenShare: () => ScreenShareInterface;