/**
 * Composable для объединённой валидации чатов и сообщений
 * Переносит типовую оркестрацию из приложений в саму библиотеку,
 * чтобы сократить пользовательский код.
 *
 * Примеры использования:
 *
 * 1) Только чаты и сообщения (без sidebar):
 * ```ts
 * import { useValidation } from '@mobilon-dev/chotto';
 *
 * const { chatValidator, messageValidator, validateAll } = useValidation(
 *   chatsRef,
 *   messagesRef,
 *   {
 *     enable: { chats: true, messages: true, sidebar: false },
 *     debounce: 300,
 *     // validateMessagesOnlyWhenSelected: true, // по умолчанию true
 *   }
 * );
 *
 * validateAll();
 * ```
 *
 * 2) Все три валидатора (чаты, сообщения, sidebar):
 * ```ts
 * import { useValidation } from '@mobilon-dev/chotto';
 *
 * const { validateAll, validateSidebar } = useValidation(
 *   chatsRef,
 *   messagesRef,
 *   {
 *     enable: { chats: true, messages: true, sidebar: true },
 *     sidebarData: sidebarItemsRef,
 *     debounce: 300,
 *   }
 * );
 *
 * validateSidebar();
 * validateAll();
 * ```
 */
import { type Ref } from 'vue';
import { useChatValidator } from './chats/useChatValidator';
import { useMessageValidator } from './messages/useMessageValidator';
import { useSidebarValidator } from './sidebar/useSidebarValidator';
export interface UseCombinedValidationOptions {
    autoValidate?: boolean;
    debounce?: number;
    enableConsoleLogging?: boolean;
    validateMessagesOnlyWhenSelected?: boolean;
    enable?: {
        chats?: boolean;
        messages?: boolean;
        sidebar?: boolean;
    };
    sidebarData?: Ref<unknown>;
}
export interface UseCombinedValidationReturn {
    chatValidator: ReturnType<typeof useChatValidator>;
    messageValidator: ReturnType<typeof useMessageValidator>;
    sidebarValidator: ReturnType<typeof useSidebarValidator> | null;
    validateChats: () => void;
    validateMessages: () => void;
    validateSidebar: () => void;
    validateAll: () => void;
    getValidationStats: () => {
        chatErrors: number;
        chatWarnings: number;
        messageErrors: number;
        messageWarnings: number;
        sidebarErrors: number;
        sidebarWarnings: number;
        totalErrors: number;
        totalWarnings: number;
    };
    setupGlobalValidationFunctions: () => void;
    logValidationInfo: () => void;
    validateOnChatSelect: () => void;
    updateChatsData: (chats: unknown[]) => void;
    updateSidebarData: (items: unknown[]) => void;
    initializeValidation: () => void;
}
export declare function useValidation(chatsData: Ref<unknown>, messagesData: Ref<unknown>, options?: UseCombinedValidationOptions): UseCombinedValidationReturn;
