import { type OnChanges, type OnInit, type SimpleChanges } from '@angular/core';
import { TuiDay, type TuiDayLike, TuiDayRange, TuiMonth } from '@taiga-ui/cdk/date-time';
import { type TuiBooleanHandler, type TuiMapper } from '@taiga-ui/cdk/types';
import { type TuiMarkerHandler } from '@taiga-ui/core/components/calendar';
import { type TuiDayRangePeriod } from './day-range-period';
import * as i0 from "@angular/core";
export declare class TuiCalendarRange implements OnInit, OnChanges {
    /**
     * @deprecated use `item`
     */
    private selectedPeriod;
    protected previousValue: TuiDay | TuiDayRange | null;
    protected hoveredItem: TuiDay | null;
    protected readonly month: import("@angular/core").WritableSignal<TuiMonth>;
    protected readonly otherDateText: import("@angular/core").Signal<string>;
    protected readonly icons: import("@taiga-ui/core/tokens").TuiCommonIcons;
    protected readonly capsMapper: TuiMapper<[TuiDay | null, TuiDay | TuiDayRange | null, TuiDayLike | null, boolean], TuiDay>;
    protected readonly mobile: boolean;
    protected readonly options: import("@taiga-ui/core/components/textfield").TuiTextfieldOptions;
    readonly min: import("@angular/core").InputSignal<TuiDay | null>;
    readonly max: import("@angular/core").InputSignal<TuiDay | null>;
    readonly minLength: import("@angular/core").InputSignal<TuiDayLike | null>;
    readonly maxLength: import("@angular/core").InputSignal<TuiDayLike | null>;
    readonly items: import("@angular/core").InputSignal<readonly TuiDayRangePeriod[]>;
    readonly listSize: import("@angular/core").InputSignal<"m" | "l" | "s">;
    readonly defaultViewedMonth: import("@angular/core").InputSignal<TuiMonth>;
    readonly markerHandler: import("@angular/core").InputSignal<TuiMarkerHandler | null>;
    readonly disabledItemHandler: import("@angular/core").InputSignal<TuiBooleanHandler<TuiDay>>;
    readonly value: import("@angular/core").ModelSignal<TuiDayRange | null>;
    readonly item: import("@angular/core").ModelSignal<TuiDayRangePeriod | null>;
    protected readonly currentValue: import("@angular/core").WritableSignal<TuiDay | TuiDayRange | null>;
    /**
     * @deprecated use `item`
     */
    get selectedActivePeriod(): TuiDayRangePeriod | null;
    /**
     * @deprecated use `item`
     */
    set selectedActivePeriod(period: TuiDayRangePeriod | null);
    ngOnChanges({ defaultViewedMonth }: SimpleChanges): void;
    ngOnInit(): void;
    protected onEsc(event: KeyboardEvent): void;
    protected readonly monthOffset: TuiMapper<[TuiMonth, number], TuiMonth>;
    protected readonly mapper: TuiMapper<[
        readonly TuiDayRangePeriod[],
        TuiDay | null,
        TuiDay | null,
        TuiDayLike | null,
        string | null | undefined
    ], ReadonlyArray<TuiDayRangePeriod | string>>;
    protected readonly disabledMapper: (disabledItemHandler: TuiBooleanHandler<TuiDay>, value: TuiDay | TuiDayRange | null, minLength: TuiDayLike | null) => TuiBooleanHandler<TuiDay>;
    protected isItemActive(item: TuiDayRangePeriod | string): boolean;
    protected onItemSelect(item: TuiDayRangePeriod | string): void;
    protected onDayClick(day: TuiDay): void;
    private get activePeriod();
    private initDefaultViewedMonth;
    private findItemByDayRange;
    static ɵfac: i0.ɵɵFactoryDeclaration<TuiCalendarRange, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<TuiCalendarRange, "tui-calendar-range", never, { "min": { "alias": "min"; "required": false; "isSignal": true; }; "max": { "alias": "max"; "required": false; "isSignal": true; }; "minLength": { "alias": "minLength"; "required": false; "isSignal": true; }; "maxLength": { "alias": "maxLength"; "required": false; "isSignal": true; }; "items": { "alias": "items"; "required": false; "isSignal": true; }; "listSize": { "alias": "listSize"; "required": false; "isSignal": true; }; "defaultViewedMonth": { "alias": "defaultViewedMonth"; "required": false; "isSignal": true; }; "markerHandler": { "alias": "markerHandler"; "required": false; "isSignal": true; }; "disabledItemHandler": { "alias": "disabledItemHandler"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; "item": { "alias": "item"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; "item": "itemChange"; }, never, never, true, never>;
}
