/**
 * Interface for retry options
 */
export interface RetryOptions {
    /** Maximum number of retry attempts (default: 5) */
    maxRetries?: number;
    /** Initial delay in milliseconds (default: 1000) */
    initialDelayMs?: number;
    /** Maximum delay in milliseconds (default: 30000) */
    maxDelayMs?: number;
    /** Backoff factor - multiplier for each retry (default: 2.0) */
    backoffFactor?: number;
    /** Optional condition function to determine if retry should happen */
    retryCondition?: (error: unknown) => boolean;
}
/**
 * Execute an async operation with retry logic
 * @param operation Async function to execute
 * @param options Retry options
 * @returns Promise resolving to the operation result
 * @throws The last error encountered after all retries are exhausted
 */
export declare function withRetry<T>(operation: () => Promise<T>, options?: RetryOptions): Promise<T>;
