/**
 * @license
 * Copyright Tyler Technologies, Inc. 
 * License: Apache-2.0
 */
import { ButtonTheme } from '../button';
import { BaseButton, IBaseButton } from '../button/base/base-button';
import { FloatingActionButtonDensity, FloatingActionButtonElevation } from './floating-action-button-constants';
import { FloatingActionButtonCore } from './floating-action-button-core';
export interface IFloatingActionButtonComponent extends IBaseButton {
    theme: ButtonTheme;
    density: FloatingActionButtonDensity;
    elevation: FloatingActionButtonElevation;
}
declare global {
    interface HTMLElementTagNameMap {
        'forge-fab': IFloatingActionButtonComponent;
    }
}
/**
 * @tag forge-fab
 *
 * @summary Floating action buttons are used to represent the most important action on a page.
 *
 * @dependency forge-focus-indicator
 * @dependency forge-state-layer
 * @dependency forge-icon
 *
 * @property {ButtonTheme} [theme="secondary"] - Sets the theme of the button.
 * @property {FloatingActionButtonDensity} [density="medium"] - Sets the density of the button.
 * @property {FloatingActionButtonElevation} [elevation="raised"] - Sets the elevation of the button.
 *
 * @attribute {string} [theme="secondary"] - Sets the theme of the button.
 * @attribute {string} [density="medium"] - Sets the density of the button.
 * @attribute {string} [elevation="raised"] - Sets the elevation of the button.
 *
 * @fires {PointerEvent} click - Fires when the button is clicked.
 *
 * @cssproperty --forge-fab-background-display - The display property.
 * @cssproperty --forge-fab-gap - The gap between the icon and the label.
 * @cssproperty --forge-fab-background - The background color.
 * @cssproperty --forge-fab-color - The text color.
 * @cssproperty --forge-fab-size - The height and min-width of the button.
 * @cssproperty --forge-fab-padding - The inline padding of the button.
 * @cssproperty --forge-fab-shadow - The box shadow of the button.
 * @cssproperty --forge-fab-hover-shadow - The box shadow of the button when hovered.
 * @cssproperty --forge-fab-active-shadow - The box shadow of the button when active.
 * @cssproperty --forge-fab-lowered-shadow - The box shadow of the button when lowered.
 * @cssproperty --forge-fab-lowered-hover-shadow - The box shadow of the button when lowered and hovered.
 * @cssproperty --forge-fab-lowered-active-shadow - The box shadow of the button when lowered and active.
 * @cssproperty --forge-fab-transition-duration - The transition duration.
 * @cssproperty --forge-fab-transition-timing - The transition timing function.
 * @cssproperty --forge-fab-shape - The border radius of the button.
 * @cssproperty --forge-fab-shape-start-start - The start-start border radius.
 * @cssproperty --forge-fab-shape-start-end - The start-end border radius.
 * @cssproperty --forge-fab-shape-end-start - The end-start border radius.
 * @cssproperty --forge-fab-shape-end-end - The end-end border radius.
 * @cssproperty --forge-fab-extended-padding - The inline padding of the extended button.
 * @cssproperty --forge-fab-extended-min-width - The min-width of the extended button.
 * @cssproperty --forge-fab-density-small-size - The height and min-width of the small density button.
 * @cssproperty --forge-fab-density-medium-size - The height and min-width of the medium density (default) button.
 * @cssproperty --forge-fab-density-large-size - The height and min-width of the large density button.
 * @cssproperty --forge-fab-disabled-cursor - The cursor when disabled.
 * @cssproperty --forge-fab-disabled-background - The background color when disabled.
 * @cssproperty --forge-fab-disabled-color - The text color when disabled.
 * @cssproperty --forge-fab-disabled-opacity - The opacity when disabled.
 *
 * @csspart root - The root container element.
 * @csspart focus-indicator - The focus-indicator indicator element.
 * @csspart state-layer - The state-layer surface element.
 *
 * @slot - This is a default/unnamed slot. Typically used for icon-only or label-only FABs. If the content forces the width to be large than the height, then the FAB will be in extended mode.
 * @slot start - An element to logically render at the start of the button content.
 * @slot label - Reserved specifically for label text. This forces the button into extended mode.
 * @slot end - An element to logically render at the end of the button content.
 */
export declare class FloatingActionButtonComponent extends BaseButton<FloatingActionButtonCore> implements IFloatingActionButtonComponent {
    static get observedAttributes(): string[];
    protected readonly _core: FloatingActionButtonCore;
    constructor();
    disconnectedCallback(): void;
    attributeChangedCallback(name: string, oldValue: string, newValue: string): void;
    theme: ButtonTheme;
    density: FloatingActionButtonDensity;
    elevation: FloatingActionButtonElevation;
}
