@class NSURL, WBSTranslationScrollInteractionAnalyticsHelper, _LTTranslator, NSObject, WBSFluidProgressController, _LTTranslationSession, WBSFluidProgressState, NSString, WBSTranslationErrorController, NSMutableSet, WBSTranslationDiagnosticData, NSArray, NSNumber, WBSTranslationContextSnapshot; @protocol WBSTranslationContentFilling, WBSTranslationContextDelegate, WBSTranslationContentExtracting, WBSTranslationContextLanguageDetecting, WBSTranslationContextTranslating, OS_dispatch_queue, WBSTranslationContextPreferenceProviding; @interface WBSTranslationContext : NSObject <WBSTranslationErrorControllerDelegate, WBSFluidProgressStateSource, WBSTranslationContentExtractionDelegate, WBSTranslationContentFillingDelegate, WBSTranslationContextTranslating> { NSObject<OS_dispatch_queue> *_internalQueue; _LTTranslator *_translator; _LTTranslationSession *_cachedSession; id<WBSTranslationContextTranslating> _contentTranslator; id<WBSTranslationContentExtracting> _contentExtractor; id<WBSTranslationContentFilling> _contentFiller; id<WBSTranslationContextLanguageDetecting> _languageDetector; id<WBSTranslationContextDelegate> _delegate; NSString *_targetLocale; WBSTranslationDiagnosticData *_diagnosticData; NSNumber *_cachedClientIsUsingPrivateBrowsingValue; NSURL *_cachedWebViewURL; WBSTranslationErrorController *_errorController; WBSTranslationContextSnapshot *_snapshotToRestoreOnNextNavigation; NSArray *_cachedTextSamples; BOOL _hasReportedFirstParagraphFinishedFillingForAnalytics; BOOL _hasReportedInitialPageFinishedFillingForAnalytics; WBSTranslationScrollInteractionAnalyticsHelper *_scrollInteractionAnalyticsHelper; NSString *_previousPageTargetLocale; NSString *_previousPageSourceLocale; NSString *_previousPageHighLevelDomain; BOOL _nextNavigationIsEligibleForContinuedTranslation; struct os_unfair_lock_s { unsigned int _os_unfair_lock_opaque; } _synchronousIvarLock; unsigned long long _state; NSString *_webpageLocale; id<WBSTranslationContextPreferenceProviding> _preferenceProvider; NSArray *_cachedSupportedLocalePairs; NSNumber *_cachedTranslationSupportedInCurrentRegion; unsigned long long _initiallyExtractedParagraphCount; unsigned long long _translatedParagraphCount; NSMutableSet *_initiallyVisibleParagraphIdentifiersQueuedForTranslation; unsigned long long _initiallyVisibleParagraphCount; BOOL _hasReportedInitialVisibleParagraphsFinishedFillingForAnalytics; BOOL _hasFinishedInitialExtraction; WBSFluidProgressState *_fluidProgressState; WBSFluidProgressController *_fluidProgressController; NSArray *_cachedAllowedTargetLocaleIdentifiers; NSArray *_cachedAvailablePreferredTargetLocalesFilteredBySupportedLocales; } @property (readonly, nonatomic) NSArray *allowedTargetLocaleIdentifiers; @property (readonly, nonatomic) NSArray *availableTargetLocaleIdentifiers; @property (readonly, nonatomic) BOOL shouldOfferTranslationUI; @property (readonly, nonatomic) unsigned long long detectionNotificationLevel; @property (readonly, nonatomic) BOOL hasStartedTranslating; @property (readonly, nonatomic) unsigned long long state; @property (readonly, nonatomic) NSString *webpageLocale; @property (weak, nonatomic) WBSFluidProgressController *fluidProgressController; @property (readonly, weak, nonatomic) id<WBSTranslationContextDelegate> delegate; @property (readonly, nonatomic) NSString *lastDeterminedWebpageLanguage; @property (readonly) unsigned long long hash; @property (readonly) Class superclass; @property (readonly, copy) NSString *description; @property (readonly, copy) NSString *debugDescription; + (id)translationContextWithWebView:(id)a0 delegate:(id)a1; - (id)_currentSnapshot; - (BOOL)createFluidProgressState; - (double)estimatedProgress; - (BOOL)hasFailedURL; - (id)expectedOrCurrentURL; - (id)progressState; - (id)_currentSession; - (void).cxx_destruct; - (void)clearFluidProgressState; - (void)setWebpageLocaleWithExtractedTextSamples:(id)a0 url:(id)a1 completionHandler:(id /* block */)a2; - (void)generateDiagnosticDataForPurpose:(unsigned long long)a0 completionHandler:(id /* block */)a1; - (void)owningWebViewDidCommitNavigationWithURL:(id)a0 completionHandler:(id /* block */)a1; - (void)owningWebViewDidDecidePolicy:(long long)a0 forNavigationAction:(id)a1 currentBackForwardListItem:(id)a2; - (void)owningWebViewWillNavigateToBackForwardListItem:(id)a0 inPageCache:(BOOL)a1; - (void)reloadPageInOriginalLanguage; - (void)requestSendFeedbackForTranslationIssue:(long long)a0; - (void)requestTranslatingWebpageToLocale:(id)a0 completionHandler:(id /* block */)a1; - (void)updateMaxVisibleHeightPercentageIfNeeded:(double)a0 userDriven:(BOOL)a1; - (void)validateTargetLocale:(id)a0 completionHandler:(id /* block */)a1; - (void)setPreferenceProvider:(id)a0; - (void)_updateCachedAPISupportedValues; - (id)_availableTargetLocaleIdentifiersConsideringCurrentWebpageLocale:(BOOL)a0; - (BOOL)_canLogSourcePageURL; - (void)_cancelProgressForNavigation:(BOOL)a0; - (void)_computeVisibleParagraphsIfDuringInitialExtraction:(id)a0; - (void)_dominantLocaleForTextSamples:(id)a0 url:(id)a1 completionHandler:(id /* block */)a2; - (double)_estimatedProgressWithScope:(long long)a0; - (void)_generateJSONVersionOfContent:(id)a0 forPurpose:(unsigned long long)a1 completionHandler:(id /* block */)a2; - (void)_generateJSONVersionOfErrors:(id)a0 completionHandler:(id /* block */)a1; - (id)_genericErrorMessage; - (BOOL)_nextURLIsEligibleForContinuedTranslation:(id)a0; - (void)_notifyDelegateToReportProgressInUnifiedField:(BOOL)a0; - (void)_promptIfNeededToConsentToTranslationWithCompletionHandler:(id /* block */)a0; - (void)_reportFilledFirstParagraphIfNeeded; - (void)_reportFinishedFillingInitialPageContentIfNeeded; - (void)_reportFinishedFillingInitialVisiblePageContentIfNeeded; - (void)_reportLanguageDetectionAnalyticsForWebpageLocale:(id)a0 notificationLevel:(unsigned long long)a1; - (void)_reportRequestedTranslationAnalyticsForWebpageLocale:(id)a0 targetLocale:(id)a1 requestType:(long long)a2; - (void)_requestTranslatingWebpageToLocale:(id)a0 requestType:(long long)a1 completionHandler:(id /* block */)a2; - (BOOL)_restoreContextSnapshotIfNeeded:(id)a0 forURL:(id)a1; - (void)_setState:(unsigned long long)a0 usingLock:(BOOL)a1; - (void)_setState:(unsigned long long)a0 usingLock:(BOOL)a1 validatingTransitionIsAllowed:(BOOL)a2; - (void)_startProgressForExtractingContent; - (BOOL)_translationSupportedInCurrentRegion; - (void)_updateProgressForFinishingInitialContentExtraction; - (void)_updateProgressWithExtractedParagraphCount:(unsigned long long)a0; - (void)_updateProgressWithTranslatedParagraphCount:(unsigned long long)a0; - (id)_userVisibleErrorMessageForError:(id)a0; - (BOOL)_validateTargetLocaleSynchronously:(id)a0; - (void)cacheTextSamples:(id)a0; - (void)contentExtractor:(id)a0 didExtractContent:(id)a1; - (void)contentExtractorDidFinishExtractingInitialContent:(id)a0; - (void)contentFiller:(id)a0 didCompleteFillingItem:(id)a1 withError:(id)a2; - (BOOL)debugAlwaysShowConsentAlert; - (BOOL)debugDelayLanguageDetection; - (void)dominantLocaleForTextSamples:(id)a0 completionHandler:(id /* block */)a1; - (void)dominantLocaleForTextSamples:(id)a0 url:(id)a1 completionHandler:(id /* block */)a2; - (void)errorController:(id)a0 didReachThresholdForError:(id)a1; - (BOOL)hasConsentedToFirstTimeAlert; - (BOOL)hideMessageInUnifiedField; - (id)initWithContentExtractor:(id)a0 contentFiller:(id)a1 delegate:(id)a2; - (BOOL)isContinuedTranslationEnabled; - (BOOL)isTranslationEnabled; - (void)isTranslationSupportedForCurrentRegionWithCompletionHandler:(id /* block */)a0; - (void)owningWebViewWillNavigateAndSaveCurrentSnapshotToStore:(id)a0 isEligibleForContinuedTranslation:(BOOL)a1; - (void)owningWebViewWillNavigateToBackForwardListItemWithSnapshotStore:(id)a0 inPageCache:(BOOL)a1; - (void)requestSendFeedbackWithCompletionHandler:(id /* block */)a0; - (void)setConsentedToFirstTimeAlert:(BOOL)a0; - (void)setContentTranslator:(id)a0; - (void)setWebpageLocaleUsingCachedTextSamplesIfNeeded:(id /* block */)a0; - (id)sourceLocaleForContentExtractor:(id)a0; - (void)supportedLocalePairsWithCompletionHandler:(id /* block */)a0; - (id)targetLocaleForContentExtractor:(id)a0; - (void)translationContext:(id)a0 translateWebpageContents:(id)a1 toTargetLocale:(id)a2 translationHandler:(id /* block */)a3; - (id)userPreferredTargetLocales; - (BOOL)validateTargetLocale:(id)a0; - (id)webpageLocaleInWebExtensionFormat; @end