import type { DoCheck } from '@angular/core';
import type { AbstractControl, ValidationErrors, Validator } from '@angular/forms';
import type { TuiContext } from '@taiga-ui/cdk/types';
import * as i0 from "@angular/core";
export declare class TuiTextareaLimitComponent {
    protected readonly limit: import("@angular/core").WritableSignal<number>;
    protected readonly context: TuiContext<string>;
    protected readonly background = "linear-gradient(transparent 0.125rem, var(--tui-status-negative-pale) 0.125rem, var(--tui-status-negative-pale) calc(100% - 0.125rem), transparent calc(100% - 0.125rem))";
    static ɵfac: i0.ɵɵFactoryDeclaration<TuiTextareaLimitComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<TuiTextareaLimitComponent, "ng-component", never, {}, {}, never, never, true, never>;
}
export declare class TuiTextareaCounterComponent {
    readonly limit: import("@angular/core").WritableSignal<number>;
    readonly length: import("@angular/core").WritableSignal<number>;
    static ɵfac: i0.ɵɵFactoryDeclaration<TuiTextareaCounterComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<TuiTextareaCounterComponent, "ng-component", never, {}, {}, never, never, true, never>;
}
export declare class TuiTextareaLimit implements Validator, DoCheck {
    private readonly textfield;
    private readonly ref;
    readonly size: import("@angular/core").WritableSignal<"m" | "l" | "s">;
    readonly limit: import("@angular/core").WritableSignal<number>;
    set limitSetter(limit: number);
    ngDoCheck(): void;
    validate(control: AbstractControl): ValidationErrors | null;
    static ɵfac: i0.ɵɵFactoryDeclaration<TuiTextareaLimit, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<TuiTextareaLimit, "[tuiTextarea][limit]", never, { "limitSetter": { "alias": "limit"; "required": false; }; }, {}, never, never, true, never>;
}
