import { AfterViewInit, ElementRef } from '@angular/core';
import { KbqClampedTextLocaleConfig } from '@koobiq/components/core';
import * as i0 from "@angular/core";
export declare class KbqClampedText implements AfterViewInit {
    /**
     * Max rows before text is clamped.
     * @default kbqClampedTextDefaultMaxRows
     */
    readonly rows: import("@angular/core").InputSignal<number>;
    /** Collapsed state: `true` = collapsed, `false` = expanded, `undefined` = auto. */
    readonly isCollapsed: import("@angular/core").InputSignal<boolean | undefined>;
    /**
     * Debounce time on resize observer when recalculating toggle and text visibility.
     * @default 0
     */
    readonly debounceTime: import("@angular/core").InputSignalWithTransform<number, unknown>;
    /** Emits when collapsed state changes. Used for two-way binding with `isCollapsed`. */
    readonly isCollapsedChange: import("@angular/core").OutputEmitterRef<boolean>;
    /** @docs-private */
    readonly text: import("@angular/core").Signal<ElementRef<HTMLSpanElement>>;
    /** @docs-private */
    readonly textContainer: import("@angular/core").Signal<ElementRef<HTMLDivElement>>;
    /**
     * This flag controls event emission, aria/css-class calculation
     * @docs-private
     */
    protected readonly collapsedState: import("@angular/core").WritableSignal<boolean | undefined>;
    /** @docs-private */
    protected readonly isToggleCollapsed: import("@angular/core").WritableSignal<boolean | undefined>;
    /** @docs-private */
    protected readonly hasToggle: import("@angular/core").WritableSignal<boolean>;
    /** @docs-private */
    protected readonly lineClamp: import("@angular/core").WritableSignal<number | null>;
    private readonly destroyRef;
    private readonly elementRef;
    private readonly resizeObserver;
    private readonly localeService;
    /**
     * Clamped text locale configuration.
     * @docs-private
     */
    protected readonly localeConfiguration: import("@angular/core").Signal<KbqClampedTextLocaleConfig | undefined>;
    /**
     * This flag is used to prevent trigger resize observer on toggle click.
     */
    private isEventFromToggle;
    constructor();
    ngAfterViewInit(): void;
    /** @docs-private */
    toggleIsCollapsed(event: Event): void;
    private updateToggleVisibilityState;
    private updateCollapsedState;
    /**
     * Calculates next collapsed state according to previous one.
     * `undefined` is treated as collapsed and not touched stated.
     */
    private toggleCollapseState;
    private getRowsCount;
    static ɵfac: i0.ɵɵFactoryDeclaration<KbqClampedText, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<KbqClampedText, "kbq-clamped-text", ["kbqClampedText"], { "rows": { "alias": "rows"; "required": false; "isSignal": true; }; "isCollapsed": { "alias": "isCollapsed"; "required": false; "isSignal": true; }; "debounceTime": { "alias": "debounceTime"; "required": false; "isSignal": true; }; }, { "isCollapsedChange": "isCollapsedChange"; }, never, ["*"], true, never>;
}
