import { PluginObject } from 'vue';
import { ModulVue } from '../../utils/vue/vue';
import { DatePickerSupportedTypes } from '../datepicker/datepicker';
export declare class MDateRange {
    from?: DatePickerSupportedTypes;
    to?: DatePickerSupportedTypes;
    hasValidFormat?: boolean | undefined;
    constructor(from?: DatePickerSupportedTypes, to?: DatePickerSupportedTypes, hasValidFormat?: boolean | undefined);
    get fromIsoString(): string | undefined;
    get toIsoString(): string | undefined;
}
interface MPeriodpickerFromProps {
    focus: boolean;
    value: DatePickerSupportedTypes;
    min: DatePickerSupportedTypes;
    max: DatePickerSupportedTypes;
    disabled: boolean;
    waiting: boolean;
    error: boolean;
    valid: boolean;
    readonly: boolean;
    ariaDescribedby?: string;
}
interface MPeriodpickerFromHandlers {
    change(newValue: DatePickerSupportedTypes): void;
    blur(): void;
}
export interface MPeriodpickerFromComponentVue extends MPeriodpickerFromProps, MPeriodpickerFromHandlers {
}
interface MPeriodpickerToProps {
    focus: boolean;
    value: DatePickerSupportedTypes;
    min: DatePickerSupportedTypes;
    max: DatePickerSupportedTypes;
    disabled: boolean;
    waiting: boolean;
    error: boolean;
    valid: boolean;
    readonly: boolean;
    ariaDescribedby?: string;
}
interface MPeriodpickerToHandlers {
    change(newValue: DatePickerSupportedTypes): void;
    blur(): void;
}
export interface MPeriodpickerToComponentVue extends MPeriodpickerToProps, MPeriodpickerToHandlers {
}
export interface MPeriodpickerFromSlotProps {
    props: MPeriodpickerFromProps;
    handlers: MPeriodpickerFromHandlers;
}
export interface MPeriodpickerToSlotProps {
    props: MPeriodpickerToProps;
    handlers: MPeriodpickerToHandlers;
}
export interface MPeriodpickerProps {
    value: MDateRange;
    min: DatePickerSupportedTypes;
    max: DatePickerSupportedTypes;
}
export declare class MPeriodpicker extends ModulVue implements MPeriodpickerProps {
    readonly value: MDateRange;
    readonly min: DatePickerSupportedTypes;
    readonly max: DatePickerSupportedTypes;
    readonly convertToIso: boolean;
    readonly validationMessageId: string;
    emitNewValue(newValue: MDateRange): void;
    dateFromInternalValue: DatePickerSupportedTypes;
    dateToInternalValue: DatePickerSupportedTypes;
    fromIsFocused: boolean;
    toIsFocused: boolean;
    beginSelection: boolean;
    get firstInputState(): MPeriodpickerFromSlotProps;
    get secondInputState(): MPeriodpickerToSlotProps;
    get internalValue(): MDateRange;
    private onValueChange;
    get minDateTo(): DatePickerSupportedTypes;
    get hasTextfieldError(): boolean;
    get isTextfieldValid(): boolean;
    onDateFromChange(newValue: DatePickerSupportedTypes): void;
    onDateToChange(newValue: DatePickerSupportedTypes): void;
    getNewModelValue(newValue: DatePickerSupportedTypes, endOfDay?: boolean): DatePickerSupportedTypes;
    endSelection(): void;
    get internalDateFromIsoString(): DatePickerSupportedTypes;
    get internalDateToIsoString(): DatePickerSupportedTypes;
    static validateDateFormat(dateString: DatePickerSupportedTypes): boolean;
    /**
     * This method convert a date or a iso string into a local date string with format YYYY-MM-DD
     *
     * @param date
     */
    static formatIsoDateToLocalString(date: DatePickerSupportedTypes): DatePickerSupportedTypes;
}
declare const PeriodpickerPlugin: PluginObject<any>;
export default PeriodpickerPlugin;
//# sourceMappingURL=periodpicker.d.ts.map