import { ComponentInterface, EventEmitter } from '../../../stencil-public-runtime';
import { DayCell, ListItem, WeekdayCell } from '../utils/calendar';
import { LogInstance, Loggable } from '../../../utils/log';
import { BalConfigObserver, BalConfigState, BalLanguage } from '../../../utils/config';
import { BalSwipeInfo, BalSwipeObserver } from '../../../interfaces';
export declare class DateCalendar implements ComponentInterface, Loggable, BalConfigObserver, BalSwipeObserver {
    private yearListEl;
    private gridEl;
    el: HTMLElement;
    selectedDate: string;
    monthFullNames: string[];
    weekdays: WeekdayCell[];
    months: ListItem[];
    years: ListItem[];
    calendarGrid: DayCell[];
    firstDayOfWeek: number;
    month: number;
    year: number;
    language: BalLanguage;
    isCalendarVisible: boolean;
    isYearListVisible: boolean;
    isMonthListVisible: boolean;
    log: LogInstance;
    createLogger(log: LogInstance): void;
    value?: string;
    valueChanged(newValue?: string, oldValue?: string): void;
    defaultDate?: string;
    allowedDates: BalProps.BalDateCalendarAllowedDatesCallback | undefined;
    min?: string;
    max?: string;
    rangePropChanged(): void;
    minYearProp?: number;
    maxYearProp?: number;
    yearRangePropChanged(): void;
    balChange: EventEmitter<BalEvents.BalDateCalendarChangeDetail>;
    connectedCallback(): void;
    configChanged(state: BalConfigState): Promise<void>;
    swipeListener({ left, right }: BalSwipeInfo): void;
    private get minYear();
    private get maxYear();
    private generateGridByDate;
    private generateGridByDefaultDate;
    private generateGridByMonthAndYear;
    private onSelectDay;
    private onClickNextMonth;
    private onClickPreviousMonth;
    private onClickSelectMonthAndYear;
    private onClickYear;
    private onClickMonth;
    render(): any;
}
