import { Ref, ComponentPublicInstance } from 'vue';
import { DateObjectValue } from '../types';
export interface InputHandlerOptions {
    format: string;
    displayRange: boolean;
    dateFormatReturn?: string;
    disableErrorHandling?: boolean;
    parseDate: (dateStr: string, format: string) => Date | null;
    formatDate: (date: Date, format: string) => string;
    generateDateRange: (startDate: Date, endDate: Date) => Date[];
    isDateComplete: (value: string) => boolean;
    displayFormattedDate: Ref<string>;
    selectedDates: Ref<DateObjectValue>;
    isFormatting: Ref<boolean>;
    isManualInputActive: Ref<boolean>;
    isUpdatingFromInternal: Ref<boolean>;
    clearValidation: () => void;
    validateField: (value: unknown, rules?: unknown[], warningRules?: unknown[]) => unknown;
    updateModel: (value: unknown) => void;
    emitInput: (value: string) => void;
    inputRef: Ref<ComponentPublicInstance | null>;
}
export declare function useInputHandler(options: InputHandlerOptions): {
    handleInput: (event: Event) => void;
    updateModelFromSelectedDates: () => void;
    updateCursorPosition: (inputElement: HTMLInputElement | null, position: number) => void;
    formatRangeInput: (value: string, cursorPos: number) => {
        formattedInput: string;
        newCursorPos: number;
    };
    updateSelectedDatesFromFormattedValue: (formattedInput: string) => void;
};
