import type { SpeakerEmbeddingExtractorInstance, SpeakerEmbeddingManagerInstance } from '../wasmTypes';
import type { GetSpeakersResult, IdentifySpeakerResult, RegisterSpeakerResult, RemoveSpeakerResult, SpeakerEmbeddingResult, SpeakerIdFileProcessResult, SpeakerIdFileWindowProcessResult, SpeakerIdInitResult, SpeakerIdModelConfig, SpeakerIdProcessResult, VerifySpeakerResult } from '../../types/interfaces';
import type { WaveformInput, RegisterSpeakerInput, IdentifySpeakerInput, VerifySpeakerInput } from '../../types/api';
import { type Constructor } from './mixinUtils';
export declare function SpeakerIdMixin<TBase extends Constructor>(Base: TBase): {
    new (...args: any[]): {
        speakerExtractor: SpeakerEmbeddingExtractorInstance | null;
        speakerManager: SpeakerEmbeddingManagerInstance | null;
        speakerIdStream: number | null;
        speakerIdSamplesProcessed: number;
        initSpeakerId(config: SpeakerIdModelConfig): Promise<SpeakerIdInitResult>;
        processSpeakerIdSamples({ sampleRate, samples: rawSamples, }: WaveformInput): Promise<SpeakerIdProcessResult>;
        computeSpeakerEmbedding(): Promise<SpeakerEmbeddingResult>;
        registerSpeaker({ name, embedding, }: RegisterSpeakerInput): Promise<RegisterSpeakerResult>;
        removeSpeaker(name: string): Promise<RemoveSpeakerResult>;
        getSpeakers(): Promise<GetSpeakersResult>;
        identifySpeaker({ embedding, threshold, }: IdentifySpeakerInput): Promise<IdentifySpeakerResult>;
        verifySpeaker({ name, embedding, threshold, }: VerifySpeakerInput): Promise<VerifySpeakerResult>;
        processSpeakerIdFile(filePath: string): Promise<SpeakerIdFileProcessResult>;
        processSpeakerIdFileWindow({ filePath, startTimeMs, durationMs, }: {
            filePath: string;
            startTimeMs: number;
            durationMs: number;
        }): Promise<SpeakerIdFileWindowProcessResult>;
        resetSpeakerIdStream(): Promise<{
            success: boolean;
        }>;
        releaseSpeakerId(): Promise<{
            released: boolean;
        }>;
    };
} & TBase;
//# sourceMappingURL=speakerId.d.ts.map