/**
 * @license
 * Copyright 2023 Tyler Technologies, Inc. 
 * License: Apache-2.0
 */
import { BaseComponent, IBaseComponent } from '../core/base/base-component';
import { BusyIndicatorLayoutDirection } from './busy-indicator-constants';
export interface IBusyIndicatorComponent extends IBaseComponent {
    titleText: string;
    message: string;
    cancel: boolean;
    spinner: boolean;
    progressBar: boolean;
    progressBarDeterminate: boolean;
    progress: number;
    buffer: number;
    width: number | 'auto';
    direction: BusyIndicatorLayoutDirection;
    manageFocus: boolean;
    fixed: boolean;
    hide(force?: boolean): void;
}
declare global {
    interface HTMLElementTagNameMap {
        'forge-busy-indicator': IBusyIndicatorComponent;
    }
    interface HTMLElementEventMap {
        'forge-busy-indicator-cancel': CustomEvent<void>;
    }
}
/**
 * A web component that renders a busy indicator covering its parent container.
 *
 * @tag forge-busy-indicator
 */
export declare class BusyIndicatorComponent extends BaseComponent implements IBusyIndicatorComponent {
    static get observedAttributes(): string[];
    private _foundation;
    constructor();
    initializedCallback(): void;
    disconnectedCallback(): void;
    attributeChangedCallback(name: string, oldValue: string, newValue: string): void;
    /** The title to be displayed. */
    titleText: string;
    /** The message to be displayed. */
    message: string;
    /** Controls whether the cancel button is visible or not. */
    cancel: boolean;
    /** Controls whether the progress spinner is visible or not. */
    spinner: boolean;
    /** Controls whether the progres bar is visible or not. */
    progressBar: boolean;
    /** Sets the progress bar determinate state. */
    progressBarDeterminate: boolean;
    /** The progress amount of the progress bar. */
    progress: number;
    /** The buffer amount of the progress bar. */
    buffer: number;
    /** Sets the width of the busy indicator element. */
    width: number | 'auto';
    /** The layout direction for alternative designs. */
    direction: BusyIndicatorLayoutDirection;
    /** Controls whether the component will manage capturing and relasing focus when opened/closed. */
    manageFocus: boolean;
    /**
     * Controls the `position` of the backdrop and surface element between `fixed` and `absolute` positioning. Default is `true`.
     *
     * Note: use this property when you want to render the busy indicator within a specific element where it doesn't fill the
     *       full viewport heigth/width to only cover the parent element bounds.
     */
    fixed: boolean;
    /**
     * Removes the element from the DOM.
     * @param {boolean} [force=false] Whether to force removal of the busy indicator or not.
     */
    hide(force?: boolean): void;
}
