import * as _angular_core from '@angular/core';

/**
 * Type of hyphenation to apply to text using CSS hyphens property.
 * - `'none'` - Disables hyphenation
 * - `'manual'` - Only breaks at explicit hyphenation points
 * - `'auto'` - Browser automatically hyphenates
 * - `null` - No hyphenation applied
 */
type HyphenationType = 'none' | 'manual' | 'auto' | null;
/**
 * Text component for displaying text content with optional line clamping, hyphenation, and expand/collapse functionality.
 */
declare class TextComponent {
    /**
     * The text content to render.
     * @default ''
     */
    readonly text: _angular_core.InputSignal<string>;
    /**
     * Maximum number of visible lines before text is clamped. Set to `null` to disable.
     * @default null
     */
    readonly maxLines: _angular_core.InputSignal<number | null>;
    /**
     * Preserves whitespace and line breaks using CSS `white-space: pre-wrap`.
     * @default false
     */
    readonly whitespaces: _angular_core.InputSignal<boolean>;
    /**
     * Controls hyphenation behavior using CSS `hyphens` property.
     * @default null
     */
    readonly hyphenation: _angular_core.InputSignal<HyphenationType>;
    /**
     * Displays "more"/"less" links to expand/collapse text. Requires `maxLines` to be set.
     * @default false
     */
    readonly expandable: _angular_core.InputSignal<boolean>;
    /**
     * Controls collapsed/expanded state. Two-way bindable via `[(isCollapsed)]`.
     * @default true
     */
    readonly isCollapsed: _angular_core.ModelSignal<boolean>;
    /** @hidden */
    readonly subline: _angular_core.InputSignalWithTransform<boolean, unknown>;
    /**
     * Computed signal that checks if maxLines is set to a valid positive number.
     * @hidden
     */
    protected readonly _hasValidMaxLines: _angular_core.Signal<boolean>;
    /**
     * Computed signal determining if text should display in collapsed state.
     * @hidden
     */
    protected readonly _isCollapsed: _angular_core.Signal<boolean>;
    /**
     * Computed signal determining if expand/collapse functionality is enabled.
     * @hidden
     */
    protected readonly _expandable: _angular_core.Signal<boolean>;
    /**
     * Tracks whether text content exceeds maximum lines.
     * @hidden
     */
    protected readonly _hasMore: _angular_core.WritableSignal<boolean>;
    /**
     * Toggles collapsed/expanded state and notifies parent components.
     * @hidden
     */
    protected toggleTextView(): void;
    /**
     * Updates `_hasMore` signal based on actual line count from line clamp directive.
     * Signal update automatically triggers change detection.
     * @hidden
     */
    protected checkLineCount(count: number): void;
    static ɵfac: _angular_core.ɵɵFactoryDeclaration<TextComponent, never>;
    static ɵcmp: _angular_core.ɵɵComponentDeclaration<TextComponent, "fd-text", never, { "text": { "alias": "text"; "required": false; "isSignal": true; }; "maxLines": { "alias": "maxLines"; "required": false; "isSignal": true; }; "whitespaces": { "alias": "whitespaces"; "required": false; "isSignal": true; }; "hyphenation": { "alias": "hyphenation"; "required": false; "isSignal": true; }; "expandable": { "alias": "expandable"; "required": false; "isSignal": true; }; "isCollapsed": { "alias": "isCollapsed"; "required": false; "isSignal": true; }; "subline": { "alias": "subline"; "required": false; "isSignal": true; }; }, { "isCollapsed": "isCollapsedChange"; }, never, never, true, never>;
}

/**
 * @deprecated Use the standalone `TextComponent` directly instead. Import `TextComponent` in your component's imports array.
 * This module will be removed in a future version.
 */
declare class TextModule {
    static ɵfac: _angular_core.ɵɵFactoryDeclaration<TextModule, never>;
    static ɵmod: _angular_core.ɵɵNgModuleDeclaration<TextModule, never, [typeof TextComponent], [typeof TextComponent]>;
    static ɵinj: _angular_core.ɵɵInjectorDeclaration<TextModule>;
}

export { TextComponent, TextModule };
export type { HyphenationType };
