/**
 * @license
 * Copyright Tyler Technologies, Inc. 
 * License: Apache-2.0
 */
import IMask, { Masked, InputMask } from 'imask';
import { DayOfWeek, ICalendarDateSelectEventData } from '../../calendar';
export declare type DatePickerParseCallback = (value: string) => Date | null;
export declare type DatePickerFormatCallback = (value: Date | null) => string;
export declare type DatePickerPrepareMaskCallback = (value: string, masked: Masked<string>, flags: IMask.AppendFlags, maskInstance: InputMask<IMask.MaskedPatternOptions>) => string;
export declare type DatePickerValueMode = 'object' | 'string' | 'iso-string';
export interface IDatePickerCalendarDropdownConfig<T> {
    value?: T | null;
    min?: Date | null;
    max?: Date | null;
    disabledDates?: Date | Date[] | null;
    popupClasses: string | string[];
    closeCallback: () => void;
    selectCallback: (value: ICalendarDateSelectEventData) => void;
    activeChangeCallback: (id: string) => void;
    disableDayCallback: (date: Date) => boolean;
    showToday: boolean;
    showClear: boolean;
    todayCallback: () => void;
    clearCallback: () => void;
    disabledDaysOfWeek?: DayOfWeek[] | null;
}
export declare const BASE_DATE_PICKER_CONSTANTS: {
    observedAttributes: {
        MIN: string;
        MAX: string;
        OPEN: string;
        DISABLED: string;
        POPUP_CLASSES: string;
        MASKED: string;
        MASK_FORMAT: string;
        SHOW_MASK_FORMAT: string;
        VALUE_MODE: string;
        ALLOW_INVALID_DATE: string;
        SHOW_TODAY: string;
        SHOW_CLEAR: string;
        DISABLED_DAYS_OF_WEEK: string;
        YEAR_RANGE: string;
        LOCALE: string;
    };
    attributes: {
        TOGGLE: string;
    };
    selectors: {
        INPUT: string;
        TOGGLE: string;
    };
};
