/**
 * Batch Fetching Utilities for Inscription Content
 * Provides efficient batch operations and concurrent request management
 */
export interface BatchFetchConfig {
    batchSize?: number;
    maxConcurrency?: number;
    retryAttempts?: number;
    retryDelay?: number;
    timeout?: number;
    priorityQueue?: boolean;
}
export interface BatchFetchResult<T> {
    successful: Map<string, T>;
    failed: Map<string, Error>;
    stats: {
        totalRequests: number;
        successCount: number;
        failureCount: number;
        averageResponseTime: number;
        totalTime: number;
    };
}
export interface FetchRequest {
    id: string;
    priority?: number;
    fetcher: () => Promise<any>;
}
declare class BatchFetcher {
    private config;
    private activeRequests;
    private requestQueue;
    constructor(config?: BatchFetchConfig);
    fetchBatch<T>(requests: FetchRequest[]): Promise<BatchFetchResult<T>>;
    private processBatchConcurrently;
    private fetchWithRetry;
    private delay;
    getActiveRequests(): string[];
    getQueueSize(): number;
}
export declare const createBatchFetchRequests: (inscriptionIds: string[], fetcher: (id: string) => Promise<any>, priorities?: Record<string, number>) => FetchRequest[];
export declare const batchFetcher: BatchFetcher;
export declare const useBatchFetcher: (config?: BatchFetchConfig) => {
    fetchBatch: <T>(requests: FetchRequest[]) => Promise<BatchFetchResult<T>>;
    getActiveRequests: () => string[];
    getQueueSize: () => number;
};
export {};
//# sourceMappingURL=batchFetcher.d.ts.map