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 user interface component for displaying written content or information.
 *
 * @description
 * The Text component is used to display written content or information to users. It is a fundamental element for
 * presenting text-based content in various user interfaces, such as paragraphs, headings, labels, or descriptions.
 * Text components can include both plain text and formatted text, allowing developers to style and structure the
 * content as needed.
 *
 * @element mosaik-text
 * @category Display
 *
 * @slot text - The text slot.
 *
 * @example
 * ```html
 * <mosaik-text text="This is an example of a Text component.">
 * </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