import { Ref } from 'vue';
import { ValidationResult, ValidationRule } from '../../../composables/validation/useValidation';
import { DateObjectValue } from '../types';
export type DatePickerValidationRule = {
    type: string;
    options: any;
};
export type DatePickerValidationBridgeOptions = {
    showSuccessMessages: boolean;
    disableErrorHandling: boolean;
    noCalendar: boolean;
    required: boolean;
    displayRange: boolean;
    customRules: Ref<DatePickerValidationRule[]>;
    customWarningRules: Ref<DatePickerValidationRule[]>;
    selectedDates: Ref<DateObjectValue>;
    isUpdatingFromInternal: Ref<boolean>;
    currentRangeIsValid: Ref<boolean>;
    getRangeValidationError: Ref<string>;
    readonly?: Ref<boolean>;
    skipValidationWhenReadonly?: boolean;
    useCalendarModeRequiredFlow?: boolean;
    isInitialValidation?: Ref<boolean>;
    isValidateOnBlur?: Ref<boolean>;
    onblur?: Ref<boolean>;
    fieldIdentifier?: string;
    revalidateOnCustomRulesChange?: boolean;
};
export declare function useDatePickerValidationBridge(options: DatePickerValidationBridgeOptions): {
    validation: {
        errors: Ref<string[], string[]>;
        warnings: Ref<string[], string[]>;
        successes: Ref<string[], string[]>;
        displaySuccesses: import('vue').ComputedRef<string[]>;
        hasError: import('vue').ComputedRef<boolean>;
        hasWarning: import('vue').ComputedRef<boolean>;
        hasSuccess: import('vue').ComputedRef<boolean>;
        validateField: (value: unknown, rules?: ValidationRule[], warningRules?: ValidationRule[], successRules?: ValidationRule[]) => ValidationResult | Promise<ValidationResult>;
        validateOnSubmit: () => boolean;
        clearValidation: () => void;
    };
    errors: Ref<string[], string[]>;
    warnings: Ref<string[], string[]>;
    successes: Ref<string[], string[]>;
    errorMessages: Ref<string[], string[]>;
    warningMessages: Ref<string[], string[]>;
    successMessages: import('vue').ComputedRef<string[]>;
    clearValidation: () => void;
    validateField: (value: unknown, rules?: ValidationRule[], warningRules?: ValidationRule[], successRules?: ValidationRule[]) => Promise<ValidationResult> | ValidationResult;
    validateDates: (forceValidation?: boolean) => ValidationResult | Promise<ValidationResult | undefined>;
};
