mirror of
https://github.com/webadderallorg/Recordly.git
synced 2026-09-25 07:16:02 +00:00
132 lines
3.7 KiB
TypeScript
132 lines
3.7 KiB
TypeScript
interface ElectronAPIExport {
|
|
storeRecordedVideo: (
|
|
videoData: ArrayBuffer,
|
|
fileName: string,
|
|
) => Promise<{ success: boolean; path?: string; message?: string }>;
|
|
storeMicrophoneSidecar: (
|
|
audioData: ArrayBuffer,
|
|
videoPath: string,
|
|
) => Promise<{ success: boolean; path?: string; error?: string }>;
|
|
getRecordedVideoPath: () => Promise<{ success: boolean; path?: string; message?: string }>;
|
|
listAssetDirectory: (relativeDir: string) => Promise<{
|
|
success: boolean;
|
|
files?: string[];
|
|
error?: string;
|
|
}>;
|
|
readLocalFile: (filePath: string) => Promise<{ success: boolean; data?: Uint8Array; error?: string }>;
|
|
generateWallpaperThumbnail: (
|
|
filePath: string,
|
|
) => Promise<{ success: boolean; data?: Uint8Array; error?: string }>;
|
|
nativeVideoExportStart: (options: {
|
|
width: number;
|
|
height: number;
|
|
frameRate: number;
|
|
bitrate: number;
|
|
encodingMode: "fast" | "balanced" | "quality";
|
|
inputMode?: "rawvideo" | "h264-stream";
|
|
}) => Promise<{
|
|
success: boolean;
|
|
sessionId?: string;
|
|
encoderName?: string;
|
|
error?: string;
|
|
}>;
|
|
nativeVideoExportWriteFrame: (
|
|
sessionId: string,
|
|
frameData: Uint8Array,
|
|
) => Promise<{ success: boolean; error?: string }>;
|
|
nativeVideoExportFinish: (
|
|
sessionId: string,
|
|
options?: {
|
|
audioMode?: "none" | "copy-source" | "trim-source" | "edited-track";
|
|
audioSourcePath?: string | null;
|
|
trimSegments?: Array<{ startMs: number; endMs: number }>;
|
|
editedAudioData?: ArrayBuffer;
|
|
editedAudioMimeType?: string | null;
|
|
},
|
|
) => Promise<{
|
|
success: boolean;
|
|
data?: Uint8Array;
|
|
encoderName?: string;
|
|
error?: string;
|
|
}>;
|
|
nativeVideoExportCancel: (
|
|
sessionId: string,
|
|
) => Promise<{ success: boolean; error?: string }>;
|
|
muxExportedVideoAudio: (
|
|
videoData: ArrayBuffer,
|
|
options?: {
|
|
audioMode?: "none" | "copy-source" | "trim-source" | "edited-track";
|
|
audioSourcePath?: string | null;
|
|
trimSegments?: Array<{ startMs: number; endMs: number }>;
|
|
editedAudioData?: ArrayBuffer;
|
|
editedAudioMimeType?: string | null;
|
|
},
|
|
) => Promise<{
|
|
success: boolean;
|
|
data?: Uint8Array;
|
|
error?: string;
|
|
}>;
|
|
getVideoAudioFallbackPaths: (
|
|
videoPath: string,
|
|
) => Promise<{ success: boolean; paths: string[]; error?: string }>;
|
|
saveExportedVideo: (
|
|
videoData: ArrayBuffer,
|
|
fileName: string,
|
|
) => Promise<{ success: boolean; path?: string; message?: string; canceled?: boolean }>;
|
|
writeExportedVideoToPath: (
|
|
videoData: ArrayBuffer,
|
|
outputPath: string,
|
|
) => Promise<{
|
|
success: boolean;
|
|
path?: string;
|
|
message?: string;
|
|
error?: string;
|
|
canceled?: boolean;
|
|
}>;
|
|
openVideoFilePicker: () => Promise<{ success: boolean; path?: string; canceled?: boolean }>;
|
|
openAudioFilePicker: () => Promise<{ success: boolean; path?: string; canceled?: boolean }>;
|
|
openWhisperExecutablePicker: () => Promise<{
|
|
success: boolean;
|
|
path?: string;
|
|
canceled?: boolean;
|
|
error?: string;
|
|
}>;
|
|
openWhisperModelPicker: () => Promise<{
|
|
success: boolean;
|
|
path?: string;
|
|
canceled?: boolean;
|
|
error?: string;
|
|
}>;
|
|
getWhisperSmallModelStatus: () => Promise<{
|
|
success: boolean;
|
|
exists: boolean;
|
|
path?: string | null;
|
|
error?: string;
|
|
}>;
|
|
downloadWhisperSmallModel: () => Promise<{
|
|
success: boolean;
|
|
path?: string;
|
|
alreadyDownloaded?: boolean;
|
|
error?: string;
|
|
}>;
|
|
deleteWhisperSmallModel: () => Promise<{ success: boolean; error?: string }>;
|
|
onWhisperSmallModelDownloadProgress: (
|
|
callback: (state: {
|
|
status: "idle" | "downloading" | "downloaded" | "error";
|
|
progress: number;
|
|
path?: string | null;
|
|
error?: string;
|
|
}) => void,
|
|
) => () => void;
|
|
generateAutoCaptions: (options: {
|
|
videoPath: string;
|
|
whisperExecutablePath?: string;
|
|
whisperModelPath: string;
|
|
language?: string;
|
|
}) => Promise<{
|
|
success: boolean;
|
|
cues?: AutoCaptionCue[];
|
|
message?: string;
|
|
error?: string;
|
|
}>;
|
|
} |