// Copyright 2021 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
/** @fileoverview Definitions for chrome.languageSettingsPrivate API */
// TODO(crbug.com/40179454): Auto-generate this file.
import {ChromeEvent} from './chrome_event.js';
declare global {
export namespace chrome {
export namespace languageSettingsPrivate {
export enum MoveType {
TOP = 'TOP',
UP = 'UP',
DOWN = 'DOWN',
UNKNOWN = 'UNKNOWN',
}
export interface Language {
code: string;
displayName: string;
nativeDisplayName: string;
supportsUI?: boolean;
supportsSpellcheck?: boolean;
supportsTranslate?: boolean;
isProhibitedLanguage?: boolean;
}
export interface SpellcheckDictionaryStatus {
languageCode: string;
isReady: boolean;
isDownloading?: boolean;
downloadFailed?: boolean;
}
export interface InputMethod {
id: string;
displayName: string;
languageCodes: string[];
tags: string[];
enabled?: boolean;
hasOptionsPage?: boolean;
isProhibitedByPolicy?: boolean;
}
export interface InputMethodLists {
componentExtensionImes: InputMethod[];
thirdPartyExtensionImes: InputMethod[];
}
type StringArrayCallback = (strings: string[]) => void;
export function getLanguageList(): Promise<Language[]>;
export function enableLanguage(languageCode: string): void;
export function disableLanguage(languageCode: string): void;
export function setEnableTranslationForLanguage(
languageCode: string, enable: boolean): void;
export function moveLanguage(languageCode: string, moveType: MoveType):
void;
export function getAlwaysTranslateLanguages(): Promise<string[]>;
export function setLanguageAlwaysTranslateState(
languageCode: string, alwaysTranslate: boolean): void;
export function getNeverTranslateLanguages(): Promise<string[]>;
export function getSpellcheckDictionaryStatuses():
Promise<SpellcheckDictionaryStatus[]>;
export function getSpellcheckWords(): Promise<string[]>;
export function addSpellcheckWord(word: string): void;
export function removeSpellcheckWord(word: string): void;
export function getTranslateTargetLanguage(): Promise<string>;
export function setTranslateTargetLanguage(languageCode: string): void;
export function getInputMethodLists(): Promise<InputMethodLists>;
export function addInputMethod(inputMethodId: string): void;
export function removeInputMethod(inputMethodId: string): void;
export function retryDownloadDictionary(languageCode: string): void;
export const onSpellcheckDictionariesChanged:
ChromeEvent<(statuses: SpellcheckDictionaryStatus[]) => void>;
export const onCustomDictionaryChanged:
ChromeEvent<(added: string[], removed: string[]) => void>;
export const onInputMethodAdded: ChromeEvent<(id: string) => void>;
export const onInputMethodRemoved: ChromeEvent<(id: string) => void>;
}
}
}