/** API */
export function mountAreaTranslator(): undefined {
return undefined;
}
export function unmountAreaTranslator(): void {}
export function isAreaTranslatorMounted(): boolean {
return false;
}
export function mountImageTranslator(): void {}
export function unmountImageTranslator(): void {}
/** */
export function mountVocabularyReencounter(): void {}
export function unmountVocabularyReencounter(): void {}
export function mountVideoSubtitleTranslation(): () => void {
return () => undefined;
}
/** Userscript YouTube/X MAIN-world bridge runtime */
export function isSupportedVideoPage(): boolean {
return false;
}
export function toggleContextMenuImage(): boolean { return false; }
/** Userscript */
export function startAreaTranslationFromContextMenu(): boolean { return false; }
// /
export {default as ImageOcrSettings} from '@/src/features/image-translation/ui/ImageOcrSettings.vue';
export {default as MangaSettings} from '@/src/features/image-translation/ui/MangaSettings.vue';
export {IMAGE_OCR_LANGUAGE_STATE_KEY, normalizeImageOcrLanguageCodes} from '@/src/features/image-translation/ocrLanguages';
export const prepareImageOcrLanguages = async (): Promise => undefined;
export {
VIDEO_LOCAL_TRANSCRIPTION_MODELS,
VIDEO_LOCAL_TRANSCRIPTION_STATE_KEY,
VIDEO_LOCAL_TRANSCRIPTION_RECOMMENDED_MODEL,
normalizeVideoLocalTranscriptionModels,
} from '@/src/features/video-subtitle/transcription';
export type {VideoLocalTranscriptionModel} from '@/src/features/video-subtitle/transcription';
export {
VIDEO_AI_SUBTITLE_CACHE_CLEAR_MESSAGE,
VIDEO_AI_SUBTITLE_CACHE_STATS_MESSAGE,
} from '@/src/features/video-subtitle/transcriptionCache';
/** OCR/offscreen */
export function toggleMangaTranslation(): boolean { return false; }
export function openMangaEntry(): boolean { return false; }
export function isMangaReaderPage(): boolean { return false; }
export function isImageTranslatorNeeded(): boolean { return false; }
export async function mountMangaEntry(): Promise {}
export function unmountMangaEntry(): void {}
export function subscribeMangaTranslation(listener: (status: {available: boolean; active: boolean; pending: boolean; errors: number}) => void): () => void {
listener({available: false, active: false, pending: false, errors: 0});
return () => undefined;
}