import type { OfflineSpeakerDiarizationInstance } from '../wasmTypes';
import type { DiarizationFileInput, DiarizationFileWindowInput } from '../../types/api';
import { type Constructor } from './mixinUtils';
import { WasmWorkerManager } from '../workers/WasmWorkerManager';
export declare function DiarizationMixin<TBase extends Constructor>(Base: TBase): {
    new (...args: any[]): {
        diarization: OfflineSpeakerDiarizationInstance | null;
        diarizationWorker: WasmWorkerManager | null;
        diarizationClustering: {
            numClusters: number;
            threshold: number;
        };
        initDiarization(config: any): Promise<{
            success: boolean;
            sampleRate: number;
            error?: string;
        }>;
        processDiarizationFile({ filePath, numClusters, threshold, }: DiarizationFileInput): Promise<{
            success: boolean;
            segments: Array<{
                start: number;
                end: number;
                speaker: number;
            }>;
            numSpeakers: number;
            durationMs: number;
            error?: string;
        }>;
        processDiarizationFileWindow({ filePath, startTimeMs, durationMs, numClusters, threshold, }: DiarizationFileWindowInput): Promise<{
            success: boolean;
            segments: Array<{
                start: number;
                end: number;
                speaker: number;
            }>;
            numSpeakers: number;
            durationMs: number;
            startTimeMs?: number;
            windowDurationMs?: number;
            sampleRate?: number;
            samples?: number;
            error?: string;
        }>;
        releaseDiarization(): Promise<{
            released: boolean;
        }>;
    };
} & TBase;
//# sourceMappingURL=diarization.d.ts.map