import { ISlottable, ISlottableProps } from '../../../Behaviors/Slottable';
import { ITextFormattableProps } from '../../../Behaviors/TextFormattable';
import { CustomElement } from '../../Abstracts/CustomElement';
declare const StateBaseElement_base: import("../../../../Index").ControlBehaviorReturn<import("../../../../Index").ControlBehaviorReturn<typeof CustomElement, ISlottableProps & ISlottable>, 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.
 *
 * @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`
 *       <div part="container">
 *         <slot name="icon"><mosaik-icon data="empty-box"></mosaik-icon></slot>
 *         <slot name="title"><h3>${this.content}</h3></slot>
 *         <slot name="actions"></slot>
 *       </div>
 *     `;
 *   }
 * }
 * ```
 *
 * @example
 * Using state elements with simple content:
 * ```html
 * <mosaik-empty-state content="No items found"></mosaik-empty-state>
 * <mosaik-error-state content="Failed to load data"></mosaik-error-state>
 * ```
 *
 * @example
 * Using state elements with rich slotted content:
 * ```html
 * <mosaik-empty-state>
 *   <mosaik-icon slot="icon" data="inbox"></mosaik-icon>
 *   <h2 slot="title">Your inbox is empty</h2>
 *   <p slot="content">Start by creating a new message</p>
 *   <mosaik-button slot="actions" variant="primary">Create Message</mosaik-button>
 * </mosaik-empty-state>
 * ```
 *
 * @example
 * Leveraging text formatting behavior:
 * ```html
 * <mosaik-error-state
 *   content="Connection failed"
 *   text-weight="bold"
 *   text-size="large">
 * </mosaik-error-state>
 * ```
 *
 * @public
 *
 * @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.
 * @abstract
 */
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