export type BackfillRetryConfig = {
    maxRetries: number;
    initialDelayMs: number;
    maxDelayMs: number;
    backoffMultiplier: number;
};
/** Transient failures worth retrying during long backfill runs. */
export declare function isRetryableBackfillError(error: unknown): boolean;
export declare function resolveBackfillRetryConfig(options?: Partial<BackfillRetryConfig>): BackfillRetryConfig;
export declare class BackfillRetryExhaustedError extends Error {
    readonly label: string;
    readonly attempts: number;
    readonly cause: unknown;
    constructor(label: string, attempts: number, cause: unknown);
}
export declare function retryWithExponentialBackoff<T>(operation: () => Promise<T>, params: {
    label: string;
    config: BackfillRetryConfig;
    isRetryable?: (error: unknown) => boolean;
    onRetry?: (attempt: number, delayMs: number, error: unknown) => void;
}): Promise<T>;
//# sourceMappingURL=backfillRetry.d.ts.map