import { GatewayApiClient, LedgerStateSelector, StateKeyValueStoreKeysResponseItem, StateEntityDetailsResponseItem, StateKeyValueStoreDataResponseItem, StateNonFungibleDetailsResponseItem } from "@radixdlt/babylon-gateway-api-sdk";
export declare const getGatewayApi: () => GatewayApiClient;
export type GatewayApi = ReturnType<typeof GatewayApiClient.initialize>;
/**
 * Fetches Key-Value Store data in chunks, accepting StateKeyValueStoreKeysResponseItem[] as input.
 *
 * @param keyValureStoreAddress - The component address of the key-value store.
 * @param keysToFetch - An array of StateKeyValueStoreKeysResponseItem (output from getAllKeyValueStoreKeys).
 * @param gatewayApi - The initialized Gateway API client.
 * @param ledgerState - The specific state version to query against (optional).
 * @param chunkSize - The number of keys to fetch in each chunk.
 * @returns A promise that resolves to an array of key-value store data items.
 */
export declare const fetchKeyValueStoreDataInChunks: (keyValureStoreAddress: string, keysToFetch: StateKeyValueStoreKeysResponseItem[], gatewayApi: GatewayApi, ledgerState?: LedgerStateSelector, chunkSize?: number) => Promise<StateKeyValueStoreDataResponseItem[]>;
/**
 * Fetches all keys from a Key-Value Store, handling pagination.
 *
 * @param api - The initialized Gateway API client.
 * @param keyValueStoreAddress - The component address of the key-value store.
 * @param ledgerState - The specific state version to query against (optional).
 * @returns A promise that resolves to an array of StateKeyValueStoreKeysResponseItem.
 */
export declare const getAllKeyValueStoreKeys: (api: GatewayApi, keyValueStoreAddress: string, ledgerState?: LedgerStateSelector) => Promise<StateKeyValueStoreKeysResponseItem[]>;
/**
 * Fetches Non-Fungible Token (NFT) data.
 *
 * @param api - The initialized Gateway API client.
 * @param nftAddress - The resource address of the NFT.
 * @param nftId - The ID of the NFT.
 * @param stateVersion - The specific state version to query against (optional).
 * @returns A promise that resolves to the NFT data.
 */
export declare const getNFTData: (api: GatewayApi, nftAddress: string, nftId: string, stateVersion?: number) => Promise<StateNonFungibleDetailsResponseItem[]>;
/**
 * Fetches NFT data in chunks to avoid rate limiting
 * @param nftIds Array of NFT IDs to fetch
 * @param nftAddress The NFT resource address
 * @param api Gateway API client
 * @param stateVersion Optional state version
 * @param chunkSize Maximum number of NFTs to fetch in one request
 * @returns A record mapping NFT IDs to their data
 */
export declare const getNFTDataInChunks: (nftIds: string[], nftAddress: string, api: GatewayApi, stateVersion?: number, chunkSize?: number) => Promise<Record<string, object>>;
/**
 * Fetches detailed data for a component using getEntityDetailsVaultAggregated.
 *
 * @param api - The initialized Gateway API client.
 * @param componentAddress - The address of the component.
 * @param stateVersion - The specific state version to query against (optional).
 * @returns A promise that resolves to the component data, or null if not found.
 */
export declare const getComponentData: (api: GatewayApi, componentAddress: string, stateVersion?: number) => Promise<StateEntityDetailsResponseItem | null>;
