import { type AfterViewInit, EventEmitter } from '@angular/core';
import { TuiDay, TuiDayRange, TuiMonth } from '@taiga-ui/cdk/date-time';
import { type TuiBooleanHandler, type TuiMapper } from '@taiga-ui/cdk/types';
import * as i0 from "@angular/core";
export declare class TuiMobileCalendar implements AfterViewInit {
    private readonly yearsScrollRef?;
    private readonly monthsScrollRef?;
    private readonly value$;
    private readonly today;
    private activeYear;
    private activeMonth;
    private readonly destroyRef;
    private readonly doc;
    private readonly speed;
    private readonly ngZone;
    protected initialized: boolean;
    protected readonly isIOS: boolean;
    protected readonly isE2E: boolean;
    protected readonly icons: import("@taiga-ui/core/tokens").TuiCommonIcons;
    protected readonly closeWord$: import("rxjs").Observable<string>;
    protected readonly cancelWord$: import("rxjs").Observable<string>;
    protected readonly doneWord$: import("rxjs").Observable<string>;
    protected readonly unorderedWeekDays$: import("rxjs").Observable<readonly [Monday: string, Tuesday: string, Wednesday: string, Thursday: string, Friday: string, Saturday: string, Sunday: string]>;
    protected readonly chooseDayOrRangeTexts$: import("rxjs").Observable<readonly [choose_day: string, choose_range: string, choose_days: string]> | null;
    protected readonly years: number[];
    protected readonly months: TuiMonth[];
    /**
     * @deprecated use static DI options instead
     * ```
     * tuiCalendarSheetOptionsProvider({rangeMode: boolean})
     * ```
     * TODO(v5): delete it
     */
    single: boolean;
    multi: boolean;
    min: TuiDay;
    max: TuiDay;
    disabledItemHandler: TuiBooleanHandler<TuiDay>;
    readonly cancel: EventEmitter<void>;
    readonly confirm: EventEmitter<TuiDayRange | TuiDay | readonly TuiDay[]>;
    readonly valueChange: import("rxjs").Observable<TuiDayRange | TuiDay | readonly TuiDay[] | null>;
    constructor();
    set value(value: TuiDay | TuiDayRange | readonly TuiDay[] | null | undefined);
    get value(): TuiDay | TuiDayRange | readonly TuiDay[] | null;
    ngAfterViewInit(): void;
    setYear(year: number): void;
    protected get yearWidth(): number;
    protected onClose(): void;
    protected onConfirm(): void;
    protected onDayClick(day: TuiDay): void;
    protected getState(index: number): 'active' | 'adjacent' | null;
    protected onMonthChange(month: number): void;
    protected readonly disabledItemHandlerMapper: TuiMapper<[
        TuiBooleanHandler<TuiDay>,
        TuiDay,
        TuiDay
    ], TuiBooleanHandler<TuiDay>>;
    private get initialYear();
    private get initialMonth();
    private isMultiValue;
    private getYearsViewportSize;
    private updateViewportDimension;
    private lateInit;
    private waitScrolledChange;
    private initYearScroll;
    private initMonthScroll;
    private scrollToActiveYear;
    private scrollToActiveMonth;
    private isYearActive;
    private monthToYear;
    private getMonthOffset;
    static ɵfac: i0.ɵɵFactoryDeclaration<TuiMobileCalendar, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<TuiMobileCalendar, "tui-mobile-calendar", never, { "single": { "alias": "single"; "required": false; }; "multi": { "alias": "multi"; "required": false; }; "min": { "alias": "min"; "required": false; }; "max": { "alias": "max"; "required": false; }; "disabledItemHandler": { "alias": "disabledItemHandler"; "required": false; }; "value": { "alias": "value"; "required": false; }; }, { "cancel": "cancel"; "confirm": "confirm"; "valueChange": "valueChange"; }, never, never, true, never>;
}
