/**
 * @license
 * Copyright 2023 Tyler Technologies, Inc. 
 * License: Apache-2.0
 */
import { BaseComponent, IBaseComponent } from '../core/base/base-component';
export interface IButtonComponent extends IBaseComponent {
    type: string;
}
declare global {
    interface HTMLElementTagNameMap {
        'forge-button': IButtonComponent;
    }
}
/**
 * The custom element class behind the `<forge-button>` element.
 *
 * @tag forge-button
 */
export declare class ButtonComponent extends BaseComponent implements IButtonComponent {
    static get observedAttributes(): string[];
    private _rippleInstance;
    private _buttonElement;
    private _type;
    private _mutationObserver;
    private _buttonAttrMutationObserver;
    private _destroyUserInteractionListener;
    constructor();
    connectedCallback(): void;
    attributeChangedCallback(name: string, oldValue: string, newValue: string): void;
    disconnectedCallback(): void;
    /**
     * Sets the type of button decoration.
     * Possible values are: raised, elevated, outlined, and dense.
     * Can be combined as: outlined-dense.
     */
    get type(): string;
    set type(value: string);
    private _applyType;
    private _initialize;
    private _initializeButton;
    private _deferRippleInitialization;
    private _createRipple;
    private _initializeButtonChildren;
    private _initializeMutationObserver;
    private _buttonWasAdded;
    private _syncDisabledState;
}
