/**
 * Реактивный composable для валидации сообщений
 */
import { type Ref } from 'vue';
import { type MessageValidationResult } from './messageValidator';
export interface UseMessageValidatorOptions {
    autoValidate?: boolean;
    debounce?: number;
}
export interface UseMessageValidatorReturn {
    validationResult: Ref<MessageValidationResult | null>;
    isValid: Ref<boolean>;
    errors: Ref<MessageValidationResult['errors']>;
    warnings: Ref<MessageValidationResult['warnings']>;
    errorCount: Ref<number>;
    warningCount: Ref<number>;
    report: Ref<string>;
    validate: () => MessageValidationResult;
    reset: () => void;
    showReport: () => void;
}
/**
 * Composable для реактивной валидации сообщений
 *
 * @param messagesData - реактивная ссылка на данные сообщений
 * @param options - опции валидатора
 * @returns объект с реактивными свойствами и методами валидации
 *
 * @example
 * ```ts
 * import { ref } from 'vue';
 * import { useMessageValidator } from '@/apps/validators/useMessageValidator';
 * import { messages } from '@/apps/data/messages';
 *
 * const messagesData = ref(messages);
 * const { isValid, errorCount, showReport } = useMessageValidator(messagesData, {
 *   autoValidate: true,
 *   debounce: 300
 * });
 *
 * // Валидация запускается автоматически
 * console.log(isValid.value); // true/false
 * console.log(errorCount.value); // количество ошибок
 *
 * // Показать полный отчет в консоли
 * showReport();
 * ```
 */
export declare function useMessageValidator(messagesData: Ref<any>, options?: UseMessageValidatorOptions): UseMessageValidatorReturn;
