export declare class TaskController {
    private paused;
    private cancelled;
    private pauseResolvers;
    private delayHandles;
    private abortController;
    get signal(): AbortSignal;
    get isCancelled(): boolean;
    throwIfCancelled(): void;
    waitWhilePaused(): Promise<void>;
    delay(ms: number): Promise<void>;
    pause(): void;
    resume(): void;
    cancel(): void;
    cleanup(): void;
    private flushDelays;
}
export interface RetryOptions {
    maxRetries: number;
    baseDelayMs: number;
    maxDelayMs: number;
}
export declare function executeWithRetry<T>(fn: () => Promise<T>, controller: TaskController, options: RetryOptions): Promise<T>;
