import { ValidationRule as SyValidationRule } from '../../composables/validation/useValidation';
import { Ref } from 'vue';
import { locales } from './locales';
import { SyTextField } from '../../main';
import { ValidationRule as VuetifyValidationRule } from 'vuetify';
export type NirValidationProps = {
    customKeyRules?: SyValidationRule[];
    customKeyWarningRules?: SyValidationRule[];
    customNumberRules?: SyValidationRule[];
    customNumberWarningRules?: SyValidationRule[];
    customRulesPrecedence?: boolean;
    disabled?: boolean;
    isValidateOnBlur?: boolean;
    keyLabel?: string;
    keyRules?: VuetifyValidationRule[];
    nirType?: 'simple' | 'complexe';
    numberLabel?: string;
    numberRules?: VuetifyValidationRule[];
    readonly?: boolean;
    required?: boolean;
    showSuccessMessages?: boolean;
    useVuetifyValidation?: boolean;
};
/**
 * Handle validation for NIR fields, including both the number and the key
 */
export declare function useNirValidation(numberValue: Ref<string>, keyValue: Ref<string>, unmaskedNumberValue: Ref<string>, unmaskedKeyValue: Ref<string>, readonly: Ref<boolean>, disabled: Ref<boolean>, required: Ref<boolean>, numberField: Ref<InstanceType<typeof SyTextField> | null>, keyField: Ref<InstanceType<typeof SyTextField> | null>, customLocale: Ref<typeof locales>, numberLabel: Ref<string>, keyLabel: Ref<string>, customNumberRules: Ref<SyValidationRule[]>, customKeyRules: Ref<SyValidationRule[]>, customNumberWarningRules: Ref<SyValidationRule[]>, customKeyWarningRules: Ref<SyValidationRule[]>, displayKey: Ref<boolean>, customRulesPrecedence: Ref<boolean>, nirType: Ref<'simple' | 'complexe'>, label: Ref<string>, showSuccessMessages: Ref<boolean>, disableErrorHandling: Ref<boolean>, isValidateOnBlur: Ref<boolean>, useVuetifyValidation: Ref<boolean>, vuetifyNumberRules: Ref<VuetifyValidationRule[]>, vuetifyKeyRules: Ref<VuetifyValidationRule[]>): {
    numberValidation: {
        errors: Ref<string[], string[]>;
        warnings: Ref<string[], string[]>;
        successes: Ref<string[], string[]>;
        hasError: import('vue').ComputedRef<boolean>;
        hasWarning: import('vue').ComputedRef<boolean>;
        hasSuccess: import('vue').ComputedRef<boolean>;
        validate: () => Promise<boolean>;
        clearValidation: () => void;
    } | {
        errors: import('vue').ComputedRef<string[]>;
        warnings: import('vue').ComputedRef<string[]>;
        successes: import('vue').ComputedRef<string[]>;
        hasError: import('vue').ComputedRef<boolean | undefined>;
        hasWarning: import('vue').ComputedRef<boolean | undefined>;
        hasSuccess: import('vue').ComputedRef<boolean>;
        validate: () => Promise<boolean>;
        clearValidation: () => void;
    };
    keyValidation: {
        errors: Ref<string[], string[]>;
        warnings: Ref<string[], string[]>;
        successes: Ref<string[], string[]>;
        hasError: import('vue').ComputedRef<boolean>;
        hasWarning: import('vue').ComputedRef<boolean>;
        hasSuccess: import('vue').ComputedRef<boolean>;
        validate: () => Promise<boolean>;
        clearValidation: () => void;
    } | {
        errors: import('vue').ComputedRef<string[]>;
        warnings: import('vue').ComputedRef<string[]>;
        successes: import('vue').ComputedRef<string[]>;
        hasError: import('vue').ComputedRef<boolean | undefined>;
        hasWarning: import('vue').ComputedRef<boolean | undefined>;
        hasSuccess: import('vue').ComputedRef<boolean>;
        validate: () => Promise<boolean>;
        clearValidation: () => void;
    };
    validateFields: (onBlur?: boolean) => Promise<boolean>;
    hasFieldErrors: import('vue').ComputedRef<boolean | undefined>;
};
