import { Ref, ComputedRef } from 'vue';
import { DateInput, DateModelValue } from '../../../composables/date/useDateInitializationDayjs';
export interface UseDatePickerStateOptions {
    selectedDates: Ref<Date | (Date | null)[] | null>;
    rangeBoundaryDates?: Ref<[Date | null, Date | null] | null>;
    format: string;
    dateFormatReturn?: string;
    displayRange?: boolean;
    parseDate: (value: string, format: string) => Date | null;
    formatDate: (date: Date | null, format: string) => string;
    initializeSelectedDates: (value: DateInput | null, format: string, dateFormatReturn?: string) => Date | (Date | null)[] | null;
    validateDates: (forceValidation?: boolean) => void;
    updateModel: (value: DateModelValue) => void;
    generateDateRange?: (start: Date, end: Date) => Date[];
}
export interface UseDatePickerStateResult {
    selectedDates: Ref<Date | (Date | null)[] | null>;
    rangeBoundaryDates?: Ref<[Date | null, Date | null] | null>;
    textInputValue: Ref<string>;
    displayFormattedDate: Ref<string>;
    formattedDate: Ref<DateModelValue>;
    displayFormattedFromSelectedDates: ComputedRef<string | null>;
    syncFromModelValue: (newValue: DateInput | undefined) => void;
    syncTextInputFromSelection: () => void;
}
export declare const useDatePickerState: (options: UseDatePickerStateOptions) => UseDatePickerStateResult;
