import type { GeneralConfig, ModelValue, UIOptions } from '@vuepic/vue-datepicker';
export interface MaPresetDate {
    label: string;
    value: Date[] | string[] | Date | string;
    slot?: string;
}
export declare const MaDatePickerSizes: readonly ["small", "medium"];
export declare const MaDatePickerPresetLocations: readonly ["left", "bottom"];
export declare const MaDatePickerPositions: readonly ["left", "center", "right"];
export declare const MaDatePickerVerticalPositions: readonly ["top", "bottom", true, false];
export interface RangeConfig {
    noDisabledRange?: boolean;
    showLastInRange?: boolean;
    minMaxRawRange?: boolean;
    partialRange?: boolean;
    disableTimeRangeValidation?: boolean;
    fixedStart?: boolean;
    fixedEnd?: boolean;
    maxRange?: string | number;
    minRange?: string | number;
    autoRange?: string | number;
}
export interface MaDatePickerProps {
    /**
     * Use teleport to position the datepicker menu. This is useful if you have hidden overflow on the parent HTML element where the menu is not showing in full.
     * @default true
     */
    teleport?: boolean | string | HTMLElement;
    /**
     * Disables the input
     * @default false
     */
    disabled?: boolean;
    /**
     * Sets the input in readonly state
     * @default false
     */
    readonly?: boolean;
    /**
     * Disable specific dates
     * Date[] | string[] | (date: Date) => boolean
     */
    disabledDates?: Date[] | string[] | ((date: Date) => boolean);
    /**
     * Allow only specific dates
     * string[] | Date[]
     */
    allowedDates?: string[] | Date[];
    /**
     * Format the display date(s) in the input field.
     * All date formats should follow the day.js format
     * @default MMM D, YYYY
     */
    format?: string | ((date: Date) => string) | ((dates: Date[]) => string);
    /**
     * Format the value of the date(s).
     * All date formats should follow the day.js format
     */
    valueFormat?: string;
    /**
     * The modelValue of the date picker
     * @default null
     */
    value?: ModelValue;
    /**
     * Select a specific week range
     * @default false
     */
    weekPicker?: boolean;
    /**
     * Select a specific month range
     * @default false
     */
    monthPicker?: boolean;
    /**
     * Select a specific year range
     * @default false
     */
    yearPicker?: boolean;
    /**
     * Select a specific quarter range
     * @default false
     */
    quarterPicker?: boolean;
    /**
     * If set to true, clicking on a date value will automatically select the value
     * @default false
     */
    autoApply?: boolean;
    /**
     * borderless variant of the input
     * @default false
     */
    borderless?: boolean;
    /**
     * Input placeholder
     */
    placeholder?: string;
    /**
     * Set datepicker locale. Datepicker will use built in javascript locale formatter to extract month and weekday names
     * @default en-US
     */
    locale?: string;
    /**
     * Timezone for the datepicker. Uses IANA timezone names (e.g. 'UTC', 'America/New_York').
     * When provided, dates will be converted to/from the specified timezone.
     * @default undefined
     */
    timezone?: string;
    /**
     * Range picker mode
     * details: https://vue3datepicker.com/props/modes-configuration/#range-configuration
     * @default false
     */
    range?: boolean | RangeConfig;
    /**
     * When configured, it will provide a sidebar with configured range/date that user can select
     * interface PresetDate {
           label: string;
           value: Date[] | string[] | Date | string;
           slot?: string;
         }
     * @default false
     */
    presetDates?: MaPresetDate[];
    /**
     * The size of datepicker input
     * @default small
     */
    size?: (typeof MaDatePickerSizes)[number];
    /**
     * The location of the preset dates
     * @default left
     */
    presetLocation?: (typeof MaDatePickerPresetLocations)[number];
    /**
     * The position of the calendar overlay
     * @default center
     */
    position?: (typeof MaDatePickerPositions)[number];
    /**
     * When enabled, based on viewport space available it will automatically position the menu above or bellow input field
     * @default bottom
     */
    autoPosition?: (typeof MaDatePickerVerticalPositions)[number];
    /**
     * All dates before the given date will be disabled
     */
    minDate?: Date | string;
    /**
     * All dates after the given date will be disabled
     */
    maxDate?: Date | string;
    /**
     * Prevent navigation after or before the min-date or max-date
     */
    preventMinMaxNavigation?: boolean;
    /**
     * Open the datepicker to some preselected month and year
     */
    startDate?: Date | string;
    /**
     * Open the datepicker to provided start-date ignoring the v-model value
     */
    focusStartDate?: boolean;
    /**
     * Add a clear icon to the input field that is visible only when there is a value and on hover
     */
    clearable?: boolean;
    /**
     * Keeps the clear icon only when there is a value in the calendar
     */
    alwaysClearable?: boolean;
    /**
     * The title of the apply button
     * @default Apply
     */
    applyButtonTitle?: string;
    /**
     * Enabling this prop will show multiple calendars side by side for range picker.
     * @default false
     */
    multiCalendars?: boolean;
    /**
     * hide the calendar icon in the input.
     * @default false
     */
    hideCalendarIcon?: boolean;
    /**
     * Custom class name for the menu overlay of the datepicker.
     * This can be used to apply specific styles to the menu overlay.
     * @default undefined
     */
    overlayClassName?: string;
    /**
     * error state of the datepicker
     * @default false
     */
    hasError?: boolean;
    /**
     * hint description of the datepicker selector
     * @default undefined
     */
    hintText?: string;
    /**
     * configures the time picker to display under the calendar rather than opening it as an overlay.
     * @default false
     */
    timePicker?: boolean;
    /**
     * Allow selecting multiple single dates.
     * When changing time, the latest selected date is affected. To deselect the date, click on the selected value
     * Can be enabled with `true` or configured with a limit using `{ limit: number }`.
     * @default false
     */
    multiDates?: boolean | {
        limit: number;
    };
    /**
     * Whether to use 24H or 12H mode.
     * @default true
     */
    is24?: boolean;
    /**
     * Enable minutes in the time picker
     * @default true
     */
    enableMinutes?: boolean;
}
export declare const MaDefaultVisibleDateFormat = "MMM D, YYYY";
export declare const MaDefaultDateFormat = "YYYY-MM-DD";
export declare const MaDefaultDateTimeFormat = "YYYY-MM-DD HH:mm:ss";
export declare const UI: UIOptions;
export declare const DatePickerConfig: GeneralConfig;
