claritykit-svelte
Version:
A comprehensive Svelte component library focused on accessibility, ADHD-optimized design, developer experience, and full SSR compatibility
61 lines • 1.88 kB
TypeScript
import { Extension } from '@tiptap/core';
export interface AudioRecordingOptions {
maxDuration: number;
audioFormat: 'webm' | 'mp4' | 'wav';
sampleRate: number;
audioBitsPerSecond: number;
onRecordingStart?: () => void;
onRecordingStop?: (blob: Blob, duration: number) => void;
onRecordingError?: (error: Error) => void;
onAudioUpload?: (blob: Blob) => Promise<{
url: string;
id: string;
}>;
enableWaveform: boolean;
enableTranscription: boolean;
transcriptionService?: (blob: Blob) => Promise<string>;
}
export interface AudioRecordingState {
isRecording: boolean;
isPaused: boolean;
duration: number;
mediaRecorder: MediaRecorder | null;
audioStream: MediaStream | null;
audioChunks: Blob[];
waveformData: number[];
}
declare module '@tiptap/core' {
interface Commands<ReturnType> {
audioRecording: {
/**
* Start audio recording
*/
startRecording: () => ReturnType;
/**
* Stop audio recording
*/
stopRecording: () => ReturnType;
/**
* Pause audio recording
*/
pauseRecording: () => ReturnType;
/**
* Resume audio recording
*/
resumeRecording: () => ReturnType;
/**
* Insert recorded audio
*/
insertRecordedAudio: (audioData: {
url: string;
id: string;
duration: number;
transcription?: string;
waveform?: number[];
}) => ReturnType;
};
}
}
export declare const AudioRecordingExtension: Extension<AudioRecordingOptions, any>;
export default AudioRecordingExtension;
//# sourceMappingURL=AudioRecordingExtension.d.ts.map