export interface PollerStats { readonly attempts: number; readonly lastIntervalMs: number; readonly totalElapsedMs: number; } interface PollWithStats { readonly stats: PollerStats; } export interface PurPollWaitingActionResult { readonly state: "waiting"; } export type PollWaitingActionResult = PurPollWaitingActionResult & PollWithStats; export interface PurPollSuccessActionResult { readonly state: "success"; readonly result: T; } export type PollSuccessActionResult = PurPollSuccessActionResult & PollWithStats; export interface PurPollErrorActionResult { readonly state: "error"; readonly error: Error; } export type PollErrorActionResult = PurPollErrorActionResult & PollWithStats; export interface PurPollTimeoutActionResult { readonly state: "timeout"; } export type PollTimeoutActionResult = PurPollTimeoutActionResult & PollWithStats; export interface PurPollAbortActionResult { readonly state: "aborted"; readonly reason: unknown; } export type PollAbortActionResult = PurPollAbortActionResult & PollWithStats; export type PollActionResult = PurPollWaitingActionResult | PurPollSuccessActionResult | PurPollErrorActionResult | PurPollTimeoutActionResult | PurPollAbortActionResult; export declare const FOREVER = 2147483647; export interface PollerOptions { readonly intervalMs: number; readonly actionTimeoutMs: number; readonly timeoutMs: number; readonly exponentialBackoff: boolean; readonly abortSignal?: AbortSignal; readonly ctx: CTX; } export type PollerResult = PollSuccessActionResult | PollErrorActionResult | PollTimeoutActionResult | PollAbortActionResult; export interface PollerCtx { readonly ctx: CTX; readonly stats: PollerStats; readonly abortSignal: AbortSignal; } export type PollerFunc = (state: PollerCtx) => Promise>; export declare function poller(fn: PollerFunc, ioptions?: Partial>): Promise>; export {}; //# sourceMappingURL=poller.d.ts.map