import { IExecuteFunctions } from 'n8n-workflow';
import { PageSpeedApiResponse, ErrorResponse, ApiRequestConfig, AdditionalFields } from '../interfaces';
/**
 * Make PageSpeed API request with enhanced error handling and retry logic
 * @param context - n8n execution context
 * @param apiKey - Google API key
 * @param config - API request configuration
 * @param additionalFields - Additional request options
 * @returns PageSpeed API response or error response
 */
export declare function makePageSpeedRequest(context: IExecuteFunctions, apiKey: string, config: ApiRequestConfig, additionalFields?: AdditionalFields): Promise<PageSpeedApiResponse | ErrorResponse>;
/**
 * Process batch of URLs with controlled concurrency and rate limiting
 * @param context - n8n execution context
 * @param apiKey - Google API key
 * @param configs - Array of API request configurations
 * @param additionalFields - Additional request options
 * @param onProgress - Optional progress callback
 * @returns Array of PageSpeed results
 */
export declare function batchProcessUrls(context: IExecuteFunctions, apiKey: string, configs: ApiRequestConfig[], additionalFields?: AdditionalFields, onProgress?: (completed: number, total: number) => void): Promise<Array<PageSpeedApiResponse | ErrorResponse>>;
/**
 * Validate API key by making a test request
 * @param context - n8n execution context
 * @param apiKey - Google API key to validate
 * @returns True if API key is valid
 */
export declare function validateApiKey(context: IExecuteFunctions, apiKey: string): Promise<boolean>;
/**
 * Estimate API quota usage for a batch of URLs
 * @param urlCount - Number of URLs to analyze
 * @param strategies - Array of strategies ('desktop', 'mobile', or 'both')
 * @returns Estimated quota usage
 */
export declare function estimateQuotaUsage(urlCount: number, strategies: string[]): number;
//# sourceMappingURL=apiUtils.d.ts.map