import './icons.html.js';
import '../read_aloud/voice_selection_menu.js';
import '../menus/simple_action_menu.js';
import '../menus/color_menu.js';
import '../menus/font_menu.js';
import '../menus/line_focus_menu.js';
import '../menus/line_spacing_menu.js';
import '../menus/letter_spacing_menu.js';
import '../menus/highlight_menu.js';
import '../menus/rate_menu.js';
import '../menus/presentation_menu.js';
import '../menus/settings_menu.js';
import '//resources/cr_elements/cr_action_menu/cr_action_menu.js';
import '//resources/cr_elements/cr_button/cr_button.js';
import '//resources/cr_elements/cr_icon_button/cr_icon_button.js';
import '//resources/cr_elements/cr_lazy_render/cr_lazy_render_lit.js';
import '//resources/cr_elements/icons.html.js';
import type { CrActionMenuElement } from '//resources/cr_elements/cr_action_menu/cr_action_menu.js';
import type { CrIconButtonElement } from '//resources/cr_elements/cr_icon_button/cr_icon_button.js';
import type { CrLazyRenderLitElement } from '//resources/cr_elements/cr_lazy_render/cr_lazy_render_lit.js';
import { CrLitElement } from '//resources/lit/v3_0/lit.rollup.js';
import type { PropertyValues } from '//resources/lit/v3_0/lit.rollup.js';
import { SettingsOption } from '../content/read_anything_types.js';
import type { LineFocusMovement, LineFocusStyle, SettingsPrefs } from '../content/read_anything_types.js';
import type { ColorMenuElement } from '../menus/color_menu.js';
import type { FontMenuElement } from '../menus/font_menu.js';
import type { HighlightMenuElement } from '../menus/highlight_menu.js';
import type { LetterSpacingMenuElement } from '../menus/letter_spacing_menu.js';
import type { LineFocusMenuElement } from '../menus/line_focus_menu.js';
import type { LineSpacingMenuElement } from '../menus/line_spacing_menu.js';
import type { ToolbarMenu } from '../menus/menu_util.js';
import type { PresentationMenuElement } from '../menus/presentation_menu.js';
import type { RateMenuElement } from '../menus/rate_menu.js';
import type { SettingsMenuElement } from '../menus/settings_menu.js';
import type { VoiceSelectionMenuElement } from '../read_aloud/voice_selection_menu.js';
export interface ReadAnythingToolbarElement {
    $: {
        rateMenu: RateMenuElement;
        colorMenu: ColorMenuElement;
        lineSpacingMenu: LineSpacingMenuElement;
        letterSpacingMenu: LetterSpacingMenuElement;
        fontMenu: FontMenuElement;
        fontSizeMenu: CrLazyRenderLitElement<CrActionMenuElement>;
        moreOptionsMenu: CrLazyRenderLitElement<CrActionMenuElement>;
        voiceSelectionMenu: VoiceSelectionMenuElement;
        highlightMenu: HighlightMenuElement;
        lineFocusMenu: LineFocusMenuElement;
        toolbarContainer: HTMLElement;
        more: CrIconButtonElement;
        settingsMenu: SettingsMenuElement;
        presentationMenu: PresentationMenuElement;
    };
}
interface MenuButton {
    id: string;
    icon: string;
    ariaLabel: string;
    openMenu: (target: HTMLElement) => void;
    announceId?: string;
}
type ToggleButtonId = typeof LINK_TOGGLE_BUTTON_ID | typeof IMAGES_TOGGLE_BUTTON_ID;
interface ToggleButton {
    id: ToggleButtonId;
    icon: string;
    title: string;
}
export declare const moreOptionsClass = ".more-options-icon";
export declare const LINKS_ENABLED_ICON = "read-anything:links-enabled";
export declare const LINKS_DISABLED_ICON = "read-anything:links-disabled";
export declare const LINK_TOGGLE_BUTTON_ID = "link-toggle-button";
export declare const IMAGES_ENABLED_ICON = "read-anything:images-enabled";
export declare const IMAGES_DISABLED_ICON = "read-anything:images-disabled";
export declare const IMAGES_TOGGLE_BUTTON_ID = "images-toggle-button";
declare const ReadAnythingToolbarElementBase: typeof CrLitElement & (new (...args: any[]) => import("//resources/cr_elements/i18n_mixin_lit.js").I18nMixinLitInterface) & (new (...args: any[]) => import("//resources/cr_elements/web_ui_listener_mixin_lit.js").WebUiListenerMixinLitInterface) & (new (...args: any[]) => import("//resources/cr_components/help_bubble/help_bubble_mixin_lit.js").HelpBubbleMixinLitInterface);
export declare class ReadAnythingToolbarElement extends ReadAnythingToolbarElementBase {
    static get is(): string;
    static get styles(): import("//resources/lit/v3_0/lit.rollup.js").CSSResultGroup;
    render(): import("//resources/lit/v3_0/lit.rollup.js").TemplateResult<1>;
    static get properties(): {
        isSpeechActive: {
            type: BooleanConstructor;
        };
        isAudioCurrentlyPlaying: {
            type: BooleanConstructor;
        };
        isReadAloudPlayable: {
            type: BooleanConstructor;
        };
        selectedVoice: {
            type: ObjectConstructor;
        };
        availableVoices: {
            type: ArrayConstructor;
        };
        enabledLangs: {
            type: ArrayConstructor;
        };
        localeToDisplayName: {
            type: ObjectConstructor;
        };
        previewVoicePlaying: {
            type: ObjectConstructor;
        };
        settingsPrefs: {
            type: ObjectConstructor;
        };
        areFontsLoaded_: {
            type: BooleanConstructor;
        };
        textStyleOptions_: {
            type: ArrayConstructor;
        };
        textStyleToggles_: {
            type: ArrayConstructor;
        };
        hideSpinner_: {
            type: BooleanConstructor;
        };
        speechRate_: {
            type: NumberConstructor;
        };
        moreOptionsButtons_: {
            type: ArrayConstructor;
        };
        pageLanguage: {
            type: StringConstructor;
        };
        presentationState: {
            type: NumberConstructor;
        };
        isImmersiveMode: {
            type: BooleanConstructor;
        };
        isReadAnythingPinned: {
            type: BooleanConstructor;
        };
        isImmersiveEnabled_: {
            type: BooleanConstructor;
        };
        lineFocusStyle: {
            type: ObjectConstructor;
        };
        lineFocusMovement: {
            type: NumberConstructor;
        };
    };
    accessor presentationState: number;
    accessor availableVoices: SpeechSynthesisVoice[];
    accessor enabledLangs: string[];
    accessor isSpeechActive: boolean;
    accessor isAudioCurrentlyPlaying: boolean;
    accessor isReadAloudPlayable: boolean;
    accessor isReadAnythingPinned: boolean;
    accessor localeToDisplayName: {
        [lang: string]: string;
    };
    accessor previewVoicePlaying: SpeechSynthesisVoice | null;
    accessor settingsPrefs: SettingsPrefs;
    accessor selectedVoice: SpeechSynthesisVoice | null;
    accessor pageLanguage: string;
    accessor isImmersiveMode: boolean;
    accessor lineFocusStyle: LineFocusStyle | null;
    accessor lineFocusMovement: LineFocusMovement | null;
    protected accessor hideSpinner_: boolean;
    protected accessor isImmersiveEnabled_: boolean;
    protected accessor moreOptionsButtons_: MenuButton[];
    protected accessor speechRate_: number;
    protected accessor textStyleOptions_: MenuButton[];
    protected accessor textStyleToggles_: ToggleButton[];
    protected accessor areFontsLoaded_: boolean;
    private startTime_;
    private constructorTime_;
    private currentFocusId_;
    private windowResizeCallback_;
    private toolbarContainerBlurCallback_;
    private wasSpeechActive_;
    private spinnerDebouncerCallbackHandle_?;
    private logger_;
    private isSetupComplete_;
    protected isFontSizeDefault_(): boolean;
    isReadingModeInactive(): boolean;
    isReadingModeInSidePanel(): boolean;
    constructor();
    connectedCallback(): void;
    disconnectedCallback(): void;
    firstUpdated(_changedProperties: PropertyValues): void;
    updated(changedProperties: PropertyValues<this>): void;
    private maybeUpdateMoreOptions_;
    private hideElement_;
    private showElement_;
    private initializeMenuButtons_;
    protected getHighlightButtonLabel_(): string;
    protected getFormattedSpeechRate_(): string;
    protected onCloseClick_(): void;
    loadFontsStylesheet(): void;
    setFontsLoaded(): void;
    protected onResetToolbar_(): void;
    protected onToolbarOverflow_(event: CustomEvent<{
        numOverflowButtons: number;
        overflowLength: number;
    }>): void;
    restoreSettingsFromPrefs(): void;
    protected playPauseButtonAriaLabel_(): string;
    protected playPauseButtonTitle_(): string;
    protected playPauseButtonIronIcon_(): "read-anything-20:pause" | "read-anything-20:play";
    protected onNextGranularityClick_(): void;
    protected onPreviousGranularityClick_(): void;
    protected onTextStyleMenuButtonFromOverflowClick_(e: Event): void;
    protected onTextStyleMenuButtonClick_(e: Event): void;
    protected onShowRateMenuClick_(event: MouseEvent): void;
    protected onVoiceSelectionMenuClick_(event: MouseEvent): void;
    protected onMoreOptionsClick_(event: MouseEvent): void;
    protected onHighlightChange_(event: CustomEvent<{
        data: number;
    }>): void;
    protected onHighlightClick_(event: MouseEvent): void;
    private setHighlightButtonIcon_;
    private setFont_;
    protected onFontChange_(event: CustomEvent<{
        data: string;
    }>): void;
    protected onRateChange_(event: CustomEvent<{
        data: number;
    }>): void;
    protected onFontSizeIncreaseClick_(): void;
    protected onFontSizeDecreaseClick_(): void;
    protected onToggleButtonClick_(e: Event): void;
    private onToggleLinksClick_;
    private onToggleImagesClick_;
    private updateLinkToggleButton;
    private updateImagesToggleButton;
    private announceSizeChage;
    private restoreAnnounceState;
    private updateFontSize_;
    protected onFontResetClick_(): void;
    protected onPlayPauseClick_(): void;
    protected onToolbarKeydown_(e: KeyboardEvent): void;
    protected onFontSizeMenuKeydown_(e: KeyboardEvent): void;
    protected onCloseAllMenus_(event: CustomEvent<{
        previousId: SettingsOption | null;
    }>): void;
    protected onCloseSubmenuRequested_(event: CustomEvent<{
        previousId: SettingsOption;
    }>): void;
    protected onOpenSettingsSubmenu_(event: CustomEvent<{
        id: SettingsOption;
        previousId: SettingsOption | null;
        target: HTMLElement;
    }>): void;
    private closeAllMenus_;
    private closeSubmenu_;
    get settingsMenu_(): Partial<Record<SettingsOption, ToolbarMenu>>;
    private getMoreOptionsButtons_;
    private onKeyDown_;
    private resetHideSpinnerDebouncer_;
    private onSpeechPlayingStateChanged_;
    private updateFocus_;
    protected getRateTabIndex_(): number;
    protected getVoiceSpeedLabel_(): string;
    protected getAudioState_(): string;
    protected getToolbarContainerClass_(): string;
    protected getGranularityContainerClass_(): string;
    protected shouldDisableGranularityNavButtons_(): boolean;
    protected onToolbarContainerBlur_(): void;
}
declare global {
    interface HTMLElementTagNameMap {
        'read-anything-toolbar': ReadAnythingToolbarElement;
    }
}
export {};
