import { LanguageSwitcherOptions, LanguageSwitcherInstance, LanguageConfig, TranslationData, InterpolationFunction, TranslationApiConfig, DetectedContent } from '../types/types'; export declare class LanguageSwitcher implements LanguageSwitcherInstance { currentLanguage: string; availableLanguages: LanguageConfig[]; translations: Record; onLanguageChange?: (_language: string) => void; private options; private interpolationFunction; private contentDetector; private translationService; private isAutoTranslating; private originalTexts; constructor(options: LanguageSwitcherOptions); /** * Set the current language */ setLanguage(language: string): Promise; /** * Start automatic translation */ startAutoTranslation(): void; /** * Stop automatic translation */ stopAutoTranslation(): void; /** * Translate the entire page */ translatePage(targetLanguage?: string): Promise; /** * Translate a specific element */ translateElement(element: HTMLElement, targetLanguage?: string): Promise; /** * Restore original text for all translated elements */ restoreOriginalText(): void; /** * Get all detected content */ getDetectedContent(): DetectedContent[]; /** * Set translation API configuration */ setTranslationApi(config: TranslationApiConfig): void; /** * Get translated text by key with optional parameter interpolation */ getText(key: string, params?: Record): string; /** * Add a new language configuration */ addLanguage(language: string, config: LanguageConfig): void; /** * Add translations for a specific language */ addTranslations(language: string, translations: TranslationData): void; /** * Remove a language and its translations */ removeLanguage(language: string): void; /** * Check if current language is RTL */ isRTL(): boolean; /** * Check if a specific language is RTL */ isLanguageRTL(language: string): boolean; /** * Get document direction for current language */ getDocumentDirection(): 'ltr' | 'rtl'; /** * Update document direction based on current language */ updateDocumentDirection(): void; /** * Get language configuration by language code */ getLanguageConfig(language: string): LanguageConfig | undefined; /** * Set custom interpolation function */ setInterpolationFunction(fn: InterpolationFunction): void; /** * Get all available language codes */ getAvailableLanguageCodes(): string[]; /** * Check if a language is available */ isLanguageAvailable(language: string): boolean; /** * Get current language configuration */ getCurrentLanguageConfig(): LanguageConfig | undefined; private translateNewContent; private translateContent; private applyTranslation; private restoreElementText; private extractElementText; private isTranslatableText; private getTranslationByKey; private defaultInterpolation; private persistLanguage; private loadPersistedLanguage; }