export interface PollEngineOptions { intervalMs: number | (() => number); timeoutMs?: number | (() => number); timeoutFloorMs?: number; onError?: (err: unknown) => void; /** Handles the poll deadline separately from an attempt rejection. */ onTimeout?: (err: unknown) => void; leading?: boolean; } export interface PollEngineHandle { start(): void; /** Stops scheduling and waits (bounded by timeoutMs) for any in-flight attempt. */ stop(): Promise; pollNow(): void; reschedule(): void; readonly isRunning: boolean; } export declare function createPollEngine(attempt: (signal: AbortSignal) => Promise, options: PollEngineOptions): PollEngineHandle;