import { type Signal } from '@angular/core';
import { TuiControl } from '@taiga-ui/cdk/classes';
import { TuiDay, type TuiDayRange, type TuiTime } from '@taiga-ui/cdk/date-time';
import { TuiCalendar } from '@taiga-ui/core/components/calendar';
import { TuiInputDirective } from '@taiga-ui/core/components/input';
import { type TuiItemsHandlers } from '@taiga-ui/core/directives/items-handlers';
import { TuiCalendarRange } from '@taiga-ui/kit/components/calendar-range';
import { type TuiInputDateOptions } from './input-date.options';
import * as i0 from "@angular/core";
import * as i1 from "@taiga-ui/core/components/input";
import * as i2 from "@taiga-ui/core/portals/dropdown";
import * as i3 from "@taiga-ui/core/directives/items-handlers";
import * as i4 from "@maskito/angular";
export declare abstract class TuiInputDateBase<T extends TuiDay | TuiDayRange | readonly [TuiDay, TuiTime | null]> extends TuiControl<T | null> {
    abstract readonly max: Signal<TuiDay>;
    abstract readonly min: Signal<TuiDay>;
    private readonly calendar;
    protected readonly options: Omit<TuiInputDateOptions, "valueTransformer">;
    protected readonly el: HTMLInputElement;
    protected readonly input: TuiInputDirective<any>;
    protected readonly filler: Signal<string>;
    protected readonly mobile: boolean;
    protected readonly open: import("@angular/core").ModelSignal<boolean>;
    protected readonly icon: import("@angular/core").WritableSignal<string>;
    protected readonly handlers: TuiItemsHandlers<T>;
    protected readonly format: Signal<import("@taiga-ui/core/tokens").TuiDateFormatSettings>;
    protected readonly dropdownEnabled: Signal<boolean>;
    protected readonly identity: import("@angular/core").WritableSignal<(a: TuiDay, b: TuiDay) => boolean>;
    protected readonly valueEffect: import("@angular/core").EffectRef;
    protected readonly calendarIn: import("@angular/core").EffectRef;
    protected readonly calendarOut: import("@angular/core").EffectRef;
    readonly native: boolean;
    protected abstract onValueChange(value: string): void;
    writeValue(value: T | null): void;
    setDate(value: TuiDay | TuiDayRange | readonly TuiDay[]): void;
    protected processCalendar(calendar: TuiCalendar | TuiCalendarRange): void;
    protected onClick(): void;
    protected stringify(value: T | null): string;
    private toCalendarValue;
    static ɵfac: i0.ɵɵFactoryDeclaration<TuiInputDateBase<any>, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<TuiInputDateBase<any>, never, never, {}, {}, never, never, true, never>;
}
export declare class TuiInputDateDirective extends TuiInputDateBase<TuiDay> {
    readonly max: import("@angular/core").InputSignalWithTransform<TuiDay, TuiDay | null>;
    readonly min: import("@angular/core").InputSignalWithTransform<TuiDay, TuiDay | null>;
    protected readonly mask: Signal<import("@maskito/core").MaskitoOptions>;
    protected onValueChange(value: string): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<TuiInputDateDirective, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<TuiInputDateDirective, "input[tuiInputDate]", never, { "max": { "alias": "max"; "required": false; "isSignal": true; }; "min": { "alias": "min"; "required": false; "isSignal": true; }; }, {}, never, never, true, [{ directive: typeof i1.TuiWithInput; inputs: {}; outputs: {}; }, { directive: typeof i2.TuiDropdownAuto; inputs: {}; outputs: {}; }, { directive: typeof i3.TuiItemsHandlersValidator; inputs: {}; outputs: {}; }, { directive: typeof i4.MaskitoDirective; inputs: {}; outputs: {}; }]>;
}
