murmuraba
Version:
Real-time audio noise reduction with advanced chunked processing for web applications
61 lines • 2.63 kB
TypeScript
import { MurmubaraConfig, ChunkMetrics, ChunkData, EngineState, ProcessingMetrics, DiagnosticInfo, StreamController } from '../../types';
export type ProcessedChunk = ChunkData;
export interface RecordingState {
isRecording: boolean;
isPaused: boolean;
recordingTime: number;
chunks: ChunkData[];
playingChunks: {
[key: string]: boolean;
};
expandedChunk: string | null;
}
export interface UseMurmubaraEngineOptions extends MurmubaraConfig {
autoInitialize?: boolean;
defaultChunkDuration?: number;
fallbackToManual?: boolean;
onInitError?: (error: Error) => void;
react19Mode?: boolean;
}
export interface UseMurmubaraEngineReturn {
isInitialized: boolean;
isLoading: boolean;
error: string | null;
engineState: EngineState;
metrics: ProcessingMetrics | null;
diagnostics: DiagnosticInfo | null;
recordingState: RecordingState;
currentStream: MediaStream | null;
streamController: StreamController | null;
initialize: () => Promise<void>;
reinitialize: () => Promise<void>;
destroy: (force?: boolean) => Promise<void>;
processStream: (stream: MediaStream) => Promise<StreamController>;
processStreamChunked: (stream: MediaStream, config: {
chunkDuration: number;
onChunkProcessed?: (chunk: ChunkMetrics) => void;
}) => Promise<StreamController>;
processFile: (arrayBuffer: ArrayBuffer) => Promise<ArrayBuffer>;
startRecording: (chunkDuration?: number) => Promise<void>;
stopRecording: () => void;
pauseRecording: () => void;
resumeRecording: () => void;
clearRecordings: () => void;
toggleChunkPlayback: (chunkId: string, audioType: 'processed' | 'original') => Promise<void>;
toggleChunkExpansion: (chunkId: string) => void;
exportChunkAsWav: (chunkId: string, audioType: 'processed' | 'original') => Promise<Blob>;
exportChunkAsMp3: (chunkId: string, audioType: 'processed' | 'original', bitrate?: number) => Promise<Blob>;
downloadChunk: (chunkId: string, format: 'webm' | 'wav' | 'mp3', audioType: 'processed' | 'original') => Promise<void>;
downloadAllChunksAsZip: (audioType?: 'processed' | 'original' | 'both') => Promise<void>;
inputGain: number;
setInputGain: (gain: number) => void;
getInputGain: () => number;
agcEnabled: boolean;
setAgcEnabled: (enabled: boolean) => Promise<void>;
getAgcEnabled: () => boolean;
getDiagnostics: () => DiagnosticInfo | null;
resetError: () => void;
formatTime: (seconds: number) => string;
getAverageNoiseReduction: () => number;
}
//# sourceMappingURL=types.d.ts.map