///
///
import GoogleWebfontsApiService from './google-webfonts-api.service';
import WebfontLoaderService from './webfont-loader.service';
import type { TranslateFactory } from '../translate/translate-factory';
import { IComponentController } from 'angular';
export interface FontFamilyStyle {
'font-family': string;
}
export default class FontSelectorController implements IComponentController {
private $document;
private $element;
private $timeout;
private $q;
private googleWebfontsApiService;
private translateFactory;
private webfontLoaderService;
inputId: string;
isDisabled?: boolean;
isRequired?: boolean;
fontFamily?: string;
onFontSelect?: (param: {
fontFamily: string;
fontWeightOptions?: string[];
}) => void;
protected delay: number;
protected googleFonts: google.fonts.WebfontFamily[];
protected inputValue?: string;
protected interactionMode: 'mouse' | 'keyboard';
protected isDropdownVisible: boolean;
protected isFetching: boolean;
protected kbSelectedIndex: number;
protected keyEventElement: HTMLInputElement | null;
protected loadingFonts: boolean;
protected placeholderText: string;
protected popularFonts: string[];
protected popularFontsText: string;
protected matches: string[];
protected minLength: number;
protected requiredText: string;
protected showPopular: boolean;
protected whatAreGoogleFonts: string;
private debouncedFetchAndSetMatches;
private inputElement;
private observer;
constructor($document: ng.IDocumentService, $element: ng.IAugmentedJQuery, $timeout: ng.ITimeoutService, $q: ng.IQService, googleWebfontsApiService: GoogleWebfontsApiService, translateFactory: TranslateFactory, webfontLoaderService: WebfontLoaderService);
$onDestroy(): void;
$onInit(): void;
protected clearInput($event: any): void;
protected clickSelect($event: any): void;
dropdownWasMousedOver(): void;
protected inputClick($event: any): void;
protected inputValueWasChanged(): void;
protected resetDropdown(): void;
protected onFontSelected(fontFamily: string, $event?: MouseEvent): void;
protected getFontWeightOptions(fontFamily: string | undefined): ng.IPromise;
protected onFontLookup(value: string): ng.IPromise;
private fetchAndSetMatches;
private onClickElsewhere;
private onKeyDown;
private scrollToMatch;
}