import { TextAlignment } from '../../../Types/TextAlignment';
import type { TextFormatter } from '../../../Types/TextFormatter';
import { CustomElement } from '../../Abstracts/CustomElement';
import type { ITextElementProps } from './ITextElementProps';
declare const TextElement_base: (abstract new (...args: Array<any>) => import("../../../Behaviors/Themeable").IThemeableProps) & (abstract new (...args: Array<any>) => import("../../../Behaviors/Variantable").IVariantableProps) & (abstract new (...args: Array<any>) => import("../../../Behaviors/Disableable").IDisableableProps) & (abstract new (...args: Array<any>) => import("../../../Behaviors/TextFormattable").ITextFormattableProps) & typeof CustomElement & import("../../../Behaviors/Themeable").IThemeableCtor;
/**
 * Text - A fundamental typography component for displaying formatted text content with comprehensive styling options.
 *
 * Provides flexible text rendering with built-in formatting capabilities, variant support, and extensive
 * customization options. Supports semantic text roles (headings, body, captions), text alignment,
 * formatting functions, and accessibility features for comprehensive typography management.
 *
 * @name TextElement
 * @element mosaik-text
 * @category Primitives
 *
 * @slot text - Primary text content area for displaying formatted text
 * @slot - Default content area for text and inline elements
 *
 * @csspart text - Text content styling container for typography control
 *
 * @cssprop --text-font-family - Font family for text content
 * @cssprop --text-font-size - Font size for text content
 * @cssprop --text-font-line-height - Line height for text content
 * @cssprop --text-font-weight - Font weight for text content
 * @cssprop --text-font-letter-spacing - Letter spacing for text content
 * @cssprop --text-font-decoration - Text decoration (underline, strikethrough, etc.)
 * @cssprop --text-font-transform - Text transform (uppercase, lowercase, capitalize)
 * @cssprop --text-padding-top - Top padding for text container
 * @cssprop --text-padding-right - Right padding for text container
 * @cssprop --text-padding-bottom - Bottom padding for text container
 * @cssprop --text-padding-left - Left padding for text container
 * @cssprop --text-gap - Gap between text elements when multiple
 * @cssprop --text-transition-duration - Animation duration for text changes
 * @cssprop --text-transition-mode - Animation easing mode for text transitions
 * @cssprop --text-transition-property - CSS properties to animate during transitions
 * @cssprop --text-foreground-color - Text color for primary content
 * @cssprop --text-background-color - Background color for text container
 * @cssprop --text-border-color - Border color for text container
 * @cssprop --text-border-width - Border width for text container
 * @cssprop --text-border-radius - Border radius for text container styling
 * @cssprop --text-border-style - Border style for text container
 * @cssprop --text-shadow - Text shadow effect for enhanced visibility
 *
 * @dependency TextFormatter - For advanced text formatting and processing
 * @dependency TextAlignment - For text alignment and layout control
 *
 * @example
 * ```html
 * <!-- Basic text content -->
 * <mosaik-text>Welcome to our application</mosaik-text>
 *
 * <!-- Heading text with variant -->
 * <mosaik-text variant="headline">Page Title</mosaik-text>
 *
 * <!-- Body text with formatting -->
 * <mosaik-text variant="body" alignment="center">
 *   This is centered body text with standard styling.
 * </mosaik-text>
 *
 * <!-- Caption text -->
 * <mosaik-text variant="caption" alignment="right">
 *   Last updated: March 15, 2024
 * </mosaik-text>
 *
 * <!-- Formatted text with custom styling -->
 * <mosaik-text
 *   variant="subtitle"
 *   style="
 *     --text-foreground-color: #007acc;
 *     --text-font-weight: 600;
 *     --text-font-transform: uppercase;
 *   ">
 *   Important Notice
 * </mosaik-text>
 *
 * <!-- Text with slot content -->
 * <mosaik-text variant="body">
 *   <span slot="text">
 *     Visit our <a href="/docs">documentation</a> for more information.
 *   </span>
 * </mosaik-text>
 *
 * <!-- Disabled text -->
 * <mosaik-text variant="body" disabled="true">
 *   This feature is currently unavailable.
 * </mosaik-text>
 *
 * <!-- Text with custom formatting -->
 * <mosaik-text
 *   variant="body"
 *   formatter="currency"
 *   value="1299.99">
 * </mosaik-text>
 *
 * <!-- Multiline text content -->
 * <mosaik-text variant="body" alignment="justify">
 *   Lorem ipsum dolor sit amet, consectetur adipiscing elit.
 *   Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
 *   Ut enim ad minim veniam, quis nostrud exercitation ullamco.
 * </mosaik-text>
 * ```
 *
 * @public
 */
export declare class TextElement extends TextElement_base implements ITextElementProps {
    private readonly _text;
    private _truncate;
    private _wrap;
    private _maxLength;
    private _maxLines;
    private _readonly;
    private _alignment;
    private _marker;
    /**
     * Constructs a new instance of the `TextElement` class.
     *
     * @public
     */
    constructor();
    /**
     * Returns the `is` property.
     *
     * @public
     * @static
     * @readonly
    */
    static get is(): string;
    /**
     * Gets or sets the `text` property.
     *
     * @public
     */
    get text(): string | null | undefined;
    set text(value: string | null | undefined);
    /**
     * Gets or sets the `truncate` property.
     *
     * @public
     * @attr
     */
    get truncate(): boolean;
    set truncate(value: boolean);
    /**
     * Gets or sets the `wrap` property.
     *
     * @public
     * @attr
     */
    get wrap(): boolean;
    set wrap(value: boolean);
    /**
     * Gets or sets the `maxLength` property.
     *
     * @public
     * @attr
     */
    get maxLength(): number | null;
    set maxLength(value: number | null);
    /**
     * Gets or sets the `maxLines` property.
     *
     * @public
     * @attr
     */
    get maxLines(): number | null;
    set maxLines(value: number | null);
    /**
     * Gets or sets the `readonly` property.
     *
     * @public
     * @attr
     */
    get readonly(): boolean;
    set readonly(value: boolean);
    /**
     * Gets or sets the `alignment` property.
     *
     * Possible values are:
     * * `center`
     * * `justify`
     * * `left`
     * * `right`
     *
     * @public
     * @attr
     */
    get alignment(): TextAlignment;
    set alignment(value: TextAlignment);
    /**
     * Gets or sets the `marker` property.
     *
     * @public
     * @attr
     */
    get marker(): string | boolean | null | undefined;
    set marker(value: string | boolean | null | undefined);
    /**
     * Mark the `text` by the given `value`. If the value is a boolean `true`, the text will be marked completely.
     *
     * @public
     */
    mark(value: string | boolean): void;
    /**
     * Trim the `text` by the given `maxLength`.
     *
     * @template
     * @private
     */
    tryTrim(): string;
    /**
     * @protected
     */
    protected onTextPropertyChanged(_prev?: string, _next?: string): void;
    /**
     * @protected
     */
    protected onFormatterPropertyChanged(_prev?: TextFormatter, next?: TextFormatter): void;
    /**
     * @protected
     */
    protected onMarkerPropertyChanged(_prev?: string | boolean | null, next?: string | boolean | null): void;
}
/**
 * @public
 */
export declare namespace TextElement {
    type Props = ITextElementProps;
}
/**
 * @public
 */
declare global {
    interface HTMLElementTagNameMap {
        'mosaik-text': TextElement;
    }
}
export {};
//# sourceMappingURL=TextElement.d.ts.map