/**
 * @license
 * Copyright Tyler Technologies, Inc. 
 * License: Apache-2.0
 */
import { BaseAdapter, IBaseAdapter } from '../../core/base/base-adapter';
import { IFocusIndicatorComponent } from '../../focus-indicator';
import { IStateLayerComponent } from '../../state-layer';
import { IBaseButton } from './base-button';
export interface IBaseButtonAdapter extends IBaseAdapter {
    initialize(): void;
    initializeAnchor(): void;
    removeAnchor(): void;
    setAnchorProperty<T extends keyof HTMLAnchorElement>(name: T, value: HTMLAnchorElement[T]): void;
    setDisabled(value: boolean): void;
    clickAnchor(): void;
    clickHost(): void;
    clickFormButton(type: string): void;
    forceFocusVisible(): void;
    addAnchorEventListener(type: string, listener: EventListener): void;
    removeAnchorEventListener(type: string, listener: EventListener): void;
    hasPopoverTarget(): boolean;
    managePopover(): boolean;
    toggleDefaultPopoverIcon(value: boolean): void;
    animateStateLayer(): void;
}
export declare abstract class BaseButtonAdapter extends BaseAdapter<IBaseButton> implements IBaseButtonAdapter {
    protected _rootElement: HTMLElement;
    protected _anchorElement: HTMLAnchorElement | undefined;
    protected _focusIndicatorElement: IFocusIndicatorComponent;
    protected _stateLayerElement: IStateLayerComponent;
    protected _endSlotElement: HTMLSlotElement;
    constructor(component: IBaseButton);
    initialize(): void;
    initializeAnchor(): void;
    removeAnchor(): void;
    setAnchorProperty<T extends keyof HTMLAnchorElement>(name: T, value: HTMLAnchorElement[T]): void;
    setDisabled(value: boolean): void;
    clickAnchor(): void;
    clickHost(): void;
    forceFocusVisible(): void;
    clickFormButton(type: string): void;
    addAnchorEventListener(type: string, listener: EventListener): void;
    removeAnchorEventListener(type: string, listener: EventListener): void;
    hasPopoverTarget(): boolean;
    /**
     * We are emulating native behavior here since custom elements do not support integrating with the
     * native popover element. This method will attempt to find the popover target element and handle
     * its `popovertargetaction`
     */
    managePopover(): boolean;
    toggleDefaultPopoverIcon(value: boolean): void;
    animateStateLayer(): void;
    private _locatePopoverTargetElement;
    private _applyHostSemantics;
    /**
     * Our anchor element is the interactive element that will be used to trigger the click event when it is present.
     *
     * We use the <a> element as an overlay on top of all content to ensure that it provides the native functionality,
     * while removing it from the accessibility tree and tab order so that it does not interfere with the host semantics.
     */
    private _createAnchorRootElement;
}
