import type { TestOnnxIntegrationResult, ValidateResult, TtsModelConfig, TtsInitResult, TtsGenerateConfig, TtsGenerateResult, AsrModelConfig, AsrInitResult, AsrRecognizeResult, AudioTaggingModelConfig, AudioTaggingInitResult, AudioTaggingResult, SpeakerIdModelConfig, SpeakerIdInitResult, SpeakerIdProcessResult, SpeakerEmbeddingResult, RegisterSpeakerResult, RemoveSpeakerResult, GetSpeakersResult, IdentifySpeakerResult, VerifySpeakerResult, SpeakerIdFileProcessResult, SpeakerIdFileWindowProcessResult, KWSModelConfig, KWSInitResult, KWSAcceptWaveformResult, VadModelConfig, VadInitResult, VadAcceptWaveformResult, LanguageIdModelConfig, LanguageIdInitResult, LanguageIdResult, PunctuationModelConfig, PunctuationInitResult, PunctuationResult, DiarizationModelConfig, DiarizationInitResult, DiarizationResult, DenoiserModelConfig, DenoiserInitResult, DenoiserResult, OnnxSessionConfig, OnnxSessionInfo, OnnxTensorData, OnnxInferenceResult } from './interfaces';
export interface ArchitectureInfo {
    architecture: string;
    jsiAvailable: boolean;
    turboModulesEnabled: boolean;
    libraryLoaded: boolean;
    currentThread: string;
    threadId: number;
    moduleType: string;
    error?: string;
}
export interface SystemInfo {
    architecture: {
        type: 'new' | 'old';
        description: string;
        jsiAvailable: boolean;
        turboModulesEnabled: boolean;
        moduleType: string;
    };
    memory: {
        maxMemoryMB: number;
        totalMemoryMB: number;
        freeMemoryMB: number;
        usedMemoryMB: number;
        systemTotalMemoryMB?: number;
        systemAvailableMemoryMB?: number;
        lowMemory?: boolean;
        lowMemoryThresholdMB?: number;
    };
    cpu: {
        availableProcessors: number;
        hardware?: string;
        supportedAbis: string[];
    };
    device: {
        brand: string;
        model: string;
        device: string;
        manufacturer: string;
        sdkVersion?: number;
        androidVersion?: string;
        iosVersion?: string;
        webPlatform?: string;
    };
    gpu: {
        supportsVulkan?: boolean;
        vulkanSupported?: boolean;
        openGLESVersion?: string;
        metalVersion?: string;
        webGLVersion?: string;
    };
    libraryLoaded: boolean;
    thread: {
        currentThread: string;
        threadId: number;
    };
    error?: string;
}
export interface WaveformInput {
    sampleRate: number;
    samples: number[];
}
export interface AudioTaggingFileInput {
    filePath: string;
    topK?: number;
}
export interface AudioTaggingSamplesInput {
    sampleRate: number;
    samples: number[];
    topK?: number;
}
export interface DiarizationFileInput {
    filePath: string;
    numClusters: number;
    threshold: number;
}
export interface SpeakerIdFileWindowInput {
    filePath: string;
    startTimeMs: number;
    durationMs: number;
}
/**
 * Windowed diarization input. iOS currently requires pre-resampled audio
 * matching the diarization model sample rate (16 kHz for the validated pyannote
 * profile). Android resamples during extraction.
 */
export interface DiarizationFileWindowInput extends DiarizationFileInput {
    startTimeMs: number;
    durationMs: number;
}
export interface RegisterSpeakerInput {
    name: string;
    embedding: number[];
}
export interface IdentifySpeakerInput {
    embedding: number[];
    threshold: number;
}
export interface VerifySpeakerInput {
    name: string;
    embedding: number[];
    threshold: number;
}
export interface ExtractTarBz2Input {
    sourcePath: string;
    targetDir: string;
}
export interface ApiInterface {
    testOnnxIntegration(): Promise<TestOnnxIntegrationResult>;
    validateLibraryLoaded(): Promise<ValidateResult>;
    getArchitectureInfo(): Promise<ArchitectureInfo>;
    getSystemInfo(): Promise<SystemInfo>;
    initTts(config: TtsModelConfig): Promise<TtsInitResult>;
    generateTts(config: TtsGenerateConfig): Promise<TtsGenerateResult>;
    stopTts(): Promise<{
        stopped: boolean;
        message?: string;
    }>;
    releaseTts(): Promise<{
        released: boolean;
    }>;
    initAsr(config: AsrModelConfig): Promise<AsrInitResult>;
    recognizeFromSamples(input: WaveformInput): Promise<AsrRecognizeResult>;
    recognizeFromFile(filePath: string): Promise<AsrRecognizeResult>;
    releaseAsr(): Promise<{
        released: boolean;
    }>;
    createAsrOnlineStream(): Promise<{
        success: boolean;
    }>;
    acceptAsrOnlineWaveform(input: WaveformInput): Promise<{
        success: boolean;
    }>;
    isAsrOnlineEndpoint(): Promise<{
        isEndpoint: boolean;
    }>;
    getAsrOnlineResult(): Promise<{
        text: string;
        tokens: string[];
        timestamps: number[];
    }>;
    finishAsrOnlineInput(): Promise<{
        success: boolean;
        error?: string;
    }>;
    resetAsrOnlineStream(): Promise<{
        success: boolean;
    }>;
    initAudioTagging(config: AudioTaggingModelConfig): Promise<AudioTaggingInitResult>;
    processAndComputeAudioTagging(input: AudioTaggingFileInput): Promise<AudioTaggingResult>;
    processAndComputeAudioSamples(input: AudioTaggingSamplesInput): Promise<AudioTaggingResult>;
    releaseAudioTagging(): Promise<{
        released: boolean;
    }>;
    initSpeakerId(config: SpeakerIdModelConfig): Promise<SpeakerIdInitResult>;
    processSpeakerIdSamples(input: WaveformInput): Promise<SpeakerIdProcessResult>;
    computeSpeakerEmbedding(): Promise<SpeakerEmbeddingResult>;
    resetSpeakerIdStream(): Promise<{
        success: boolean;
    }>;
    registerSpeaker(input: RegisterSpeakerInput): Promise<RegisterSpeakerResult>;
    removeSpeaker(name: string): Promise<RemoveSpeakerResult>;
    getSpeakers(): Promise<GetSpeakersResult>;
    identifySpeaker(input: IdentifySpeakerInput): Promise<IdentifySpeakerResult>;
    verifySpeaker(input: VerifySpeakerInput): Promise<VerifySpeakerResult>;
    processSpeakerIdFile(filePath: string): Promise<SpeakerIdFileProcessResult>;
    processSpeakerIdFileWindow(input: SpeakerIdFileWindowInput): Promise<SpeakerIdFileWindowProcessResult>;
    releaseSpeakerId(): Promise<{
        released: boolean;
    }>;
    initDiarization(config: DiarizationModelConfig): Promise<DiarizationInitResult>;
    processDiarizationFile(input: DiarizationFileInput): Promise<DiarizationResult>;
    processDiarizationFileWindow(input: DiarizationFileWindowInput): Promise<DiarizationResult>;
    releaseDiarization(): Promise<{
        released: boolean;
    }>;
    initKws(config: KWSModelConfig): Promise<KWSInitResult>;
    acceptKwsWaveform(input: WaveformInput): Promise<KWSAcceptWaveformResult>;
    resetKwsStream(): Promise<{
        success: boolean;
    }>;
    releaseKws(): Promise<{
        released: boolean;
    }>;
    initVad(config: VadModelConfig): Promise<VadInitResult>;
    acceptVadWaveform(input: WaveformInput): Promise<VadAcceptWaveformResult>;
    resetVad(): Promise<{
        success: boolean;
    }>;
    releaseVad(): Promise<{
        released: boolean;
    }>;
    initLanguageId(config: LanguageIdModelConfig): Promise<LanguageIdInitResult>;
    detectLanguage(input: WaveformInput): Promise<LanguageIdResult>;
    detectLanguageFromFile(filePath: string): Promise<LanguageIdResult>;
    releaseLanguageId(): Promise<{
        released: boolean;
    }>;
    initPunctuation(config: PunctuationModelConfig): Promise<PunctuationInitResult>;
    addPunctuation(text: string): Promise<PunctuationResult>;
    releasePunctuation(): Promise<{
        released: boolean;
    }>;
    initDenoiser(config: DenoiserModelConfig): Promise<DenoiserInitResult>;
    denoiseFile(filePath: string): Promise<DenoiserResult>;
    releaseDenoiser(): Promise<{
        released: boolean;
    }>;
    createOnnxSession(config: OnnxSessionConfig): Promise<OnnxSessionInfo>;
    runOnnxSession(sessionId: string, inputs: Record<string, OnnxTensorData>): Promise<OnnxInferenceResult>;
    releaseOnnxSession(sessionId: string): Promise<{
        released: boolean;
    }>;
    extractTarBz2(input: ExtractTarBz2Input): Promise<{
        success: boolean;
        message: string;
        extractedFiles: string[];
    }>;
}
//# sourceMappingURL=api.d.ts.map