import { DatePickerTranslations } from './../../constants/constants';
import { DateUtils } from '../../utils/date-utils';
export declare enum CALENDAR_VIEWS {
    DAYS = 0,
    MONTHS = 1,
    YEARS = 2,
    DECADES = 3
}
export declare enum CALENDAR_NAVIGATION {
    FIRST = "first",
    LAST = "last",
    PREV = "prev",
    NEXT = "next"
}
export declare enum CALENDAR_GRAIN {
    DAY = "$day",
    WEEK = "$week",
    MONTH = "$month",
    YEAR = "$year"
}
export type IDateDisabled = string[] | (({ date }: {
    date: Date;
}) => boolean) | undefined;
export interface IDatePreset {
    preset: Date;
    label: string;
}
export interface IRangePreset {
    preset?: [Date, Date];
    label: string;
    action?: () => null;
    includeCurrentDate?: boolean;
}
export interface IDateConfig {
    date?: [Date, Date] | Date | undefined;
    minDate: Date | undefined;
    maxDate: Date | undefined;
    disabled: IDateDisabled;
    page: CALENDAR_VIEWS;
}
export interface IHeaderConfig {
    firstDisabled?: boolean;
    prevDisabled?: boolean;
    lastDisabled?: boolean;
    nextDisabled?: boolean;
    firstTooltip?: string;
    lastTooltip?: string;
    prevTooltip?: string;
    nextTooltip?: string;
}
export declare const parseDate: (date: Date | string | undefined, dateUtils: DateUtils) => Date;
export declare const parseRange: (date: string | [string, string] | undefined, dateUtils: DateUtils) => [Date, Date];
export declare const getTitle: (date: Date, view: CALENDAR_VIEWS, translations: any, dateUtils: DateUtils) => string;
export declare const changeMonth: (date: Date, view: CALENDAR_VIEWS, grain: string, dateUtils: DateUtils) => Date;
export declare const buildHeaderConfig: (date: Date, view: CALENDAR_VIEWS, config: IDateConfig, dateUtils: DateUtils, translations?: DatePickerTranslations) => {
    firstDisabled: boolean;
    lastDisabled: boolean;
    prevDisabled: boolean;
    nextDisabled: boolean;
    firstTooltip: string;
    lastTooltip: string;
    prevTooltip: string;
    nextTooltip: string;
} | {
    prevDisabled: boolean;
    nextDisabled: boolean;
    prevTooltip: string;
    nextTooltip: string;
    firstDisabled?: undefined;
    lastDisabled?: undefined;
    firstTooltip?: undefined;
    lastTooltip?: undefined;
};
export declare const isBeforeMin: (date: Date, minDate: Date, n: number, dateUtils: DateUtils) => boolean;
export declare const isAfterMax: (date: Date, maxDate: Date, n: number, dateUtils: DateUtils) => boolean;
export declare const isDisabled: (config: IDateConfig, date: Date, dateUtils: DateUtils) => boolean;
