import type { PdaFn } from "@macalinao/gill-extra";
import type { Address } from "@solana/kit";
/**
 * Hook for computing multiple PDAs from some arguments.
 */
export type PdasHook<TArgs, TResult = Address> = <T extends readonly TArgs[]>(args: T | null | undefined) => {
    [K in keyof T]: TResult;
} | null | undefined;
/**
 * Creates a hook for computing multiple PDAs (Program Derived Addresses) with caching
 *
 * @param pdaFn - A function that computes a PDA from some arguments
 * @param queryKeyPrefix - A unique prefix for the react-query cache key
 * @returns A hook that computes and caches multiple PDAs
 *
 * @example
 * ```typescript
 * import { findAssociatedTokenPda } from "@solana-program/token";
 *
 * const useAssociatedTokenPdas = createPdasHook(
 *   findAssociatedTokenPda,
 *   "associatedTokenPdas"
 * );
 *
 * // In a component:
 * const pdas = useAssociatedTokenPdas([
 *   { mint: mintAddress1, owner: ownerAddress1, tokenProgram: TOKEN_PROGRAM_ADDRESS },
 *   { mint: mintAddress2, owner: ownerAddress2, tokenProgram: TOKEN_PROGRAM_ADDRESS },
 * ]);
 * ```
 */
export declare function createPdasHook<TArgs, TResult>(pdaFn: PdaFn<TArgs, TResult>, queryKeyPrefix: string): PdasHook<TArgs, TResult>;
//# sourceMappingURL=create-pdas-hook.d.ts.map