/**
 * @license
 * Copyright Tyler Technologies, Inc. 
 * License: Apache-2.0
 */
import { ICustomElementFoundation } from '@tylertech/forge-core';
import { ExperimentalFocusOptions } from '../../constants';
import { IBaseButtonAdapter } from './base-button-adapter';
import { ButtonClickOptions, ButtonType } from './base-button-constants';
import { IBaseButton } from './base-button';
export interface IBaseButtonFoundation extends ICustomElementFoundation {
    type: ButtonType;
    disabled: boolean;
    popoverIcon: boolean;
    dense: boolean;
    click(options: ButtonClickOptions): void;
    focus(options?: ExperimentalFocusOptions): void;
}
export declare abstract class BaseButtonFoundation<T extends IBaseButtonAdapter<IBaseButton>> implements IBaseButtonFoundation {
    protected _adapter: T;
    private _type;
    private _disabled;
    private _popoverIcon;
    private _dense;
    private _clickListener;
    private _keydownListener;
    private _slotChangeListener;
    constructor(_adapter: T);
    initialize(): void;
    /**
     * Handles overriding the the `click()` method on the HTMLElement instance
     */
    click({ animateStateLayer }?: ButtonClickOptions): void;
    focus(options?: ExperimentalFocusOptions): void;
    protected _onClick(evt: MouseEvent): Promise<void>;
    /**
     * Handle keydown events on the host element to manually trigger click events.
     */
    private _onKeydown;
    private _detectSlottedAnchor;
    get type(): ButtonType;
    set type(type: ButtonType);
    get disabled(): boolean;
    set disabled(value: boolean);
    get popoverIcon(): boolean;
    set popoverIcon(value: boolean);
    get dense(): boolean;
    set dense(value: boolean);
}
