import { StateBaseElement } from '../Abstracts/StateBaseElement';
import { IBusyStateElementProps } from './IBusyStateElementProps';
declare const BusyStateElement_base: (abstract new (...args: Array<any>) => import("../../../Behaviors/Themeable").IThemeableProps) & typeof StateBaseElement & import("../../../Behaviors/Themeable").IThemeableCtor;
/**
 * BusyState - A loading state component that indicates ongoing processes or data retrieval operations.
 *
 * @description
 * The BusyState component displays animated loading indicators and optional status messages to inform
 * users when content is being loaded, processed, or retrieved. It provides visual feedback for
 * asynchronous operations to maintain user engagement and communicate system activity. The component
 * supports progress indicators, customizable messaging, and optional action buttons such as cancel
 * operations. It's designed to maintain user confidence during wait times by clearly communicating
 * that the system is working on their request.
 *
 * @name BusyState
 * @element mosaik-busy-state
 * @category States
 *
 * @slot - Default content area for additional loading state information or custom elements
 * @slot actions - Action buttons or controls available during loading (e.g., cancel operation, dismiss)
 *
 * @csspart content - The content text container for detailed loading information
 * @csspart header - The header text container for primary loading status messaging
 * @csspart innerStack - The internal stack container for action slot elements
 * @csspart symbol - The loading indicator container for progress ring or spinner
 *
 * @cssprop {String} --busy-state-font-family - The state font family CSS custom property.
 * @cssprop {String} --busy-state-font-letter-spacing - The state font letter spacing CSS custom property.
 * @cssprop {String} --busy-state-font-line-height - The state font line height CSS custom property.
 * @cssprop {String} --busy-state-font-size - The state font size CSS custom property.
 * @cssprop {String} --busy-state-font-text-decoration - The state font text decoration CSS custom property.
 * @cssprop {String} --busy-state-font-text-transform - The state font text transform CSS custom property.
 * @cssprop {String} --busy-state-font-weight - The state font weight CSS custom property.
 * @cssprop {String} --busy-state-foreground-color - The text color for busy state content
 * @cssprop {String} --busy-state-gap - The spacing between symbol, text, and action elements
 * @cssprop {String} --busy-state-header-font-family - The font family for header text
 * @cssprop {String} --busy-state-header-font-letter-spacing - The letter spacing for header text
 * @cssprop {String} --busy-state-header-font-line-height - The line height for header text
 * @cssprop {String} --busy-state-header-font-size - The font size for header text
 * @cssprop {String} --busy-state-header-font-text-decoration - The text decoration style for header text
 * @cssprop {String} --busy-state-header-font-text-transform - The text transformation style for header text
 * @cssprop {String} --busy-state-header-font-weight - The font weight for header text
 * @cssprop {String} --busy-state-padding-bottom - The bottom padding inside the busy state container
 * @cssprop {String} --busy-state-padding-left - The left padding inside the busy state container
 * @cssprop {String} --busy-state-padding-right - The right padding inside the busy state container
 * @cssprop {String} --busy-state-padding-top - The top padding inside the busy state container
 * @cssprop {String} --busy-state-shadow - The state shadow CSS custom property.
 * @cssprop {String} --busy-state-shadow-blur - The state shadow blur CSS custom property.
 * @cssprop {String} --busy-state-shadow-color - The state shadow color CSS custom property.
 * @cssprop {String} --busy-state-shadow-offset-x - The state shadow offset x CSS custom property.
 * @cssprop {String} --busy-state-shadow-offset-y - The state shadow offset y CSS custom property.
 * @cssprop {String} --busy-state-shadow-spread - The state shadow spread CSS custom property.
 * @cssprop {String} --busy-state-transition-duration - The state transition duration CSS custom property.
 * @cssprop {String} --busy-state-transition-mode - The state transition mode CSS custom property.
 * @cssprop {String} --busy-state-transition-property - The state transition property CSS custom property.
 * @cssprop {String} --busy-state-translate - The state translate CSS custom property.
 *
 * @dependency mosaik-progress-ring - The Progress Ring element.
 * @dependency mosaik-stack - The Stack element.
 * @dependency mosaik-text - The Text element.
 *
 * @example
 * Simple loading state:
 * ```html
 * <mosaik-busy-state header="Loading..."></mosaik-busy-state>
 * ```
 *
 * @example
 * Loading state with cancel action:
 * ```html
 * <mosaik-busy-state header="Uploading files...">
 *   <mosaik-button slot="actions" appearance="soft" onclick="cancelUpload()">Cancel</mosaik-button>
 * </mosaik-busy-state>
 * ```
 *
 * @example
 * Loading state with detail text set via JavaScript:
 * ```html
 * <mosaik-busy-state id="busyState" header="Loading your dashboard"></mosaik-busy-state>
 * <script>
 *   document.getElementById('busyState').content = 'This may take a few moments';
 * </script>
 * ```
 *
 * @public
 */
export declare class BusyStateElement extends BusyStateElement_base implements IBusyStateElementProps {
    private _header;
    private _icon;
    /**
     * Constructs a new instance of the `BusyStateElement` class.
     *
     * @public
     */
    constructor();
    /**
     * Returns the `is` property.
     *
     * @public
     * @static
     * @readonly
    */
    static get is(): string;
    /**
     * Gets or sets the `icon` property.
     * The icon SVG path data for the loading indicator.
     * The default value is an empty string.
     *
     * @public
     */
    get icon(): string;
    set icon(value: string);
    /**
     * Gets or sets the `header` property.
     * The primary loading status message displayed to users.
     * The default value is an empty string, which means no header is displayed.
     *
     * @public
     * @attr
     */
    get header(): string;
    set header(value: string);
}
/**
 * @public
 */
export declare namespace BusyStateElement {
    type Props = IBusyStateElementProps;
}
/**
 * @public
 */
declare global {
    interface HTMLElementTagNameMap {
        'mosaik-busy-state': BusyStateElement;
    }
}
export {};
//# sourceMappingURL=BusyStateElement.d.ts.map