/**
 * @license
 * Copyright 2023 Tyler Technologies, Inc. 
 * License: Apache-2.0
 */
import { ICustomElementFoundation } from '@tylertech/forge-core';
import { IBusyIndicatorAdapter } from './busy-indicator-adapter';
import { BusyIndicatorLayoutDirection } from './busy-indicator-constants';
export interface IBusyIndicatorFoundation extends ICustomElementFoundation {
    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;
}
/**
 * Provides facilities and helper methods for creating a busy indicator component.
 */
export declare class BusyIndicatorFoundation implements IBusyIndicatorFoundation {
    private _adapter;
    private _titleText;
    private _message;
    private _canCancel;
    private _showSpinner;
    private _showProgressBar;
    private _progressBarDeterminate;
    private _progress;
    private _buffer;
    private _cancelListenerAttached;
    private _width;
    private _previouslyFocusedElement?;
    private _direction;
    private _manageFocus;
    private _fixed;
    constructor(_adapter: IBusyIndicatorAdapter);
    destroy(): void;
    show(): void;
    /**
     * Removes the element from the DOM.
     * @param {boolean} [force=false] Whether to force removal of the busy indicator or not.
     */
    hide(force?: boolean): void;
    /** Sets the elements opacity to 0 which triggers the CSS transition to fade out. */
    fadeOut(): void;
    /** Sets the elements opacity to 1 which triggers the CSS transition to fade in after the current delay value. */
    fadeIn(): void;
    /** Attaches the click listener to the cancel button. */
    private _attachCancelClickListener;
    /** Handles clicks on the cancel button. */
    private _onCancelClick;
    /** Cache currently focused element, set focus to the busy indicator. */
    private _captureFocus;
    /** Gives focus back to the element that had it when the busy indicator was displayed. */
    private _releaseFocus;
    /** The title to be displayed. */
    set titleText(value: string);
    get titleText(): string;
    /** The message to be displayed. */
    set message(value: string);
    get message(): string;
    /** Controls whether the cancel button is visible or not. */
    set cancel(canCancel: boolean);
    get cancel(): boolean;
    /** Controls whether the progress spinner is visible or not. */
    set spinner(showSpinner: boolean);
    get spinner(): boolean;
    /** Controls whether the progres bar is visible or not. */
    set progressBar(showProgressBar: boolean);
    get progressBar(): boolean;
    /** Sets the progress bar mode. */
    set progressBarDeterminate(determinate: boolean);
    get progressBarDeterminate(): boolean;
    /** The progress amount of the progress bar. */
    set progress(value: number);
    get progress(): number;
    /** The buffer amount of the progress bar. */
    set buffer(value: number);
    get buffer(): number;
    get direction(): BusyIndicatorLayoutDirection;
    set direction(value: BusyIndicatorLayoutDirection);
    private _applyDirection;
    /** Sets the width of the busy indicator element. */
    set width(value: number | 'auto');
    get width(): number | 'auto';
    get manageFocus(): boolean;
    set manageFocus(value: boolean);
    get fixed(): boolean;
    set fixed(value: boolean);
}
