"use strict";

import { SherpaOnnxAPI } from "./SherpaOnnxAPI.js";
import { ArchiveService } from "./services/ArchiveService.js";
import { AsrService } from "./services/AsrService.js";
import { AudioTaggingService } from "./services/AudioTaggingService.js";
import { DiarizationService } from "./services/DiarizationService.js";
import { DenoisingService } from "./services/DenoisingService.js";
import { KWSService } from "./services/KWSService.js";
import { LanguageIdService } from "./services/LanguageIdService.js";
import { PunctuationService } from "./services/PunctuationService.js";
import { SpeakerIdService } from "./services/SpeakerIdService.js";
import { TtsService } from "./services/TtsService.js";
import { OnnxInferenceService } from "./services/OnnxInferenceService.js";
import { VadService } from "./services/VadService.js";
import { LiveSpeakerTurnSession } from "./services/LiveSpeakerTurnSession.js";
import { LiveAttributedTranscriptionSession } from "./services/LiveAttributedTranscriptionSession.js";
import { SegmentedOfflineAsrSession } from "./services/SegmentedOfflineAsrSession.js";
// Initialize services with API
const api = SherpaOnnxAPI;
const ttsService = new TtsService(api);
const asrService = new AsrService(api);
const audioTaggingService = new AudioTaggingService(api);
const speakerIdService = new SpeakerIdService(api);
const kwsService = new KWSService(api);
const vadService = new VadService(api);
const languageIdService = new LanguageIdService(api);
const punctuationService = new PunctuationService(api);
const archiveService = new ArchiveService(api);
const diarizationService = new DiarizationService(api);
const denoisingService = new DenoisingService(api);
const onnxInferenceService = new OnnxInferenceService(api);

// Create the public interface
const SherpaOnnx = {
  ...api,
  TTS: ttsService,
  ASR: asrService,
  AudioTagging: audioTaggingService,
  SpeakerId: speakerIdService,
  KWS: kwsService,
  VAD: vadService,
  LanguageId: languageIdService,
  Punctuation: punctuationService,
  Archive: archiveService,
  Diarization: diarizationService,
  Denoising: denoisingService,
  OnnxInference: onnxInferenceService,
  LiveSpeakerTurnSession,
  LiveAttributedTranscriptionSession,
  SegmentedOfflineAsrSession
};

// Export the main interface
export default SherpaOnnx;

// Export services for direct use
export const TTS = ttsService;
export const ASR = asrService;
export const AudioTagging = audioTaggingService;
export const SpeakerId = speakerIdService;
export const KWS = kwsService;
export const VAD = vadService;
export const LanguageId = languageIdService;
export const Punctuation = punctuationService;
export const Diarization = diarizationService;
export const Denoising = denoisingService;
export const OnnxInference = onnxInferenceService;
export { LiveSpeakerTurnSession };
export { LiveAttributedTranscriptionSession };
export { SegmentedOfflineAsrSession };

// Export types
export * from "./types/api.js";
export * from "./types/interfaces.js";

// Export tensor utilities
export { typedArrayToBase64, base64ToTypedArray, createTensorData, parseTensorData } from "./utils/tensorUtils.js";
// Export OnnxSession class
export { OnnxSession } from "./services/OnnxInferenceService.js";
// Export web utilities
export { loadWasmModule, configureSherpaOnnx, isSherpaOnnxReady, waitForReady } from "./web/wasmLoader.js";
//# sourceMappingURL=index.js.map