import { ISlottable, ISlottableProps } from '../../../Behaviors/Slottable'; import { ITextFormattableProps } from '../../../Behaviors/TextFormattable'; import { CustomElement } from '../../Abstracts/CustomElement'; declare const StateBaseElement_base: import("../../../../Index").ControlBehaviorReturn, ITextFormattableProps>; /** * State Base Element - The foundational base class for all state indicator components. * * @description * StateBaseElement provides the core infrastructure for components that represent various UI * states such as empty states, error states, loading states, and success states. It combines * text formatting capabilities with slot management to enable rich content presentation including * icons, titles, descriptions, and action buttons. This abstract class establishes a consistent * API for state visualization across the Mosaik design system, allowing subclasses to define * state-specific styling and default content. All concrete state components (EmptyState, ErrorState, * LoadingState, etc.) extend this base class to inherit content management and formatting patterns. * * @remarks * The class applies behavior mixins in composition order: Slottable (innermost) → TextFormattable * (outermost). The content property provides a simple string-based content setter, while slots * allow rich HTML content projection for more complex state presentations. * * @name StateBaseElement * @category Abstract Elements * * @fires connected {ConnectedEvent} - Emitted when the element is connected to the DOM * @fires disconnected {DisconnectedEvent} - Emitted when the element is disconnected from the DOM * @fires changed {PropertyChangedEvent} - Emitted when any attribute changes before update * * @example * Extending StateBaseElement for an empty state: * ```typescript * export class EmptyStateElement extends StateBaseElement { * protected override render() { * return html` *
* *

${this.content}

* *
* `; * } * } * ``` * * @example * Using state elements with simple content: * ```html * * * ``` * * @example * Using state elements with rich slotted content: * ```html * * *

Your inbox is empty

*

Start by creating a new message

* Create Message *
* ``` * * @example * Leveraging text formatting behavior: * ```html * * * ``` * * @abstract * @public */ export declare class StateBaseElement extends StateBaseElement_base implements ITextFormattableProps, ISlottableProps, ISlottable { private _content; /** * Constructs a new instance of the `StateElement` class. * * @public */ constructor(); /** * Gets or sets the `content` property of the state. * * @public */ get content(): string; set content(value: string); } export {}; //# sourceMappingURL=StateBaseElement.d.ts.map