import { IBTCProvider, InscriptionIdentifier, UTXO } from '../core/types';
/** Query key for ordinals fetching */
export declare const ORDINALS_QUERY_KEY = "ordinals";
export declare class OrdinalsClassifierUnavailableError extends Error {
    constructor();
}
/**
 * Options for fetching ordinals.
 */
export interface FetchOrdinalsOptions {
    /** Bitcoin address owning the UTXOs */
    address: string;
    /** UTXOs to check for inscriptions */
    utxos: UTXO[];
    /** BTC wallet provider (for getInscriptions method) */
    btcProvider?: IBTCProvider | null;
    /** Base URL for ordinals API fallback (required if wallet doesn't support getInscriptions) */
    ordinalsApiUrl?: string;
    /** Timeout for wallet getInscriptions call in ms (default: 3000) */
    walletTimeout?: number;
    /** Whether to filter dust UTXOs before API verification (default: true) */
    filterDustBeforeApi?: boolean;
}
/**
 * Fetch inscriptions using wallet provider or API fallback.
 *
 * This function is designed to be used as a queryFn in React Query.
 *
 * @param options - Options for fetching ordinals
 * @returns Array of inscription identifiers
 */
export declare function fetchOrdinals(options: FetchOrdinalsOptions): Promise<InscriptionIdentifier[]>;
/**
 * Create query key for ordinals query.
 *
 * Use this to create consistent query keys across your application.
 * Uses a hash of UTXO identifiers instead of full array to avoid
 * expensive deep equality comparisons in React Query.
 *
 * @param address - Bitcoin address
 * @param utxos - UTXOs (used in key to refetch when UTXOs change)
 * @returns Query key array
 */
export declare function getOrdinalsQueryKey(address: string | undefined, utxos: UTXO[]): readonly [string, string | undefined, string];
