import { QueryClient } from '@tanstack/react-query';
export interface MmkvStorage {
    getAllKeys(): string[];
    getString(key: string): string | undefined;
    getNumber(key: string): number | undefined;
    getBoolean(key: string): boolean | undefined;
    addOnValueChangedListener(listener: (key: string) => void): {
        remove: () => void;
    };
}
export interface UseDynamicMmkvQueriesOptions {
    /**
     * The React Query client instance
     */
    queryClient: QueryClient;
    /**
     * The MMKV storage instance to use
     */
    storage: MmkvStorage;
}
export interface MmkvQueryResult {
    key: string;
    data: unknown;
    isLoading: boolean;
    error: Error | null;
}
/**
 * Hook that creates individual React Query queries for each MMKV key
 * This gives you granular control and better performance since each key has its own query
 * Automatically listens for MMKV changes and updates the relevant queries
 *
 * @example
 * // Get individual queries for all MMKV keys
 * const queries = useDynamicMmkvQueries({ queryClient, storage });
 * // Returns: [
 * //   { key: 'sync_download_progress', data: 75, isLoading: false, error: null },
 * //   { key: 'user_preference', data: 'dark', isLoading: false, error: null },
 * //   ...
 * // ]
 */
export declare function useDynamicMmkvQueries({ queryClient, storage }: UseDynamicMmkvQueriesOptions): MmkvQueryResult[];
