export type P5CaptureState = "idle" | "capturing" | "encoding"; export type P5CaptureFormat = "webm" | "gif" | "mp4" | "png" | "jpg" | "webp"; export type P5CaptureOptions = { format?: P5CaptureFormat; framerate?: number; bitrate?: number; quality?: number; width?: number; height?: number; duration?: number | null; autoSaveDuration?: number | null; baseFilename?: (date: Date) => string; imageFilename?: (index: number) => string; beforeDownload?: ( blob: Blob, context: { filename: string; format: P5CaptureFormat; }, next: () => void, ) => Promise | void; verbose?: boolean; }; export type P5CaptureGlobalOptions = P5CaptureOptions & { disableUi?: boolean; disableScaling?: boolean; }; declare global { class P5Capture { static setDefaultOptions(options: P5CaptureGlobalOptions): void; static getInstance(): P5Capture; get state(): P5CaptureState; start(options?: P5CaptureOptions): Promise; stop(): Promise; } }