import { Channel, ConnectionListener, ConnectionStatus } from './Channel'; import { MethodExecutor } from './Executor'; export interface ContinueCheck { failed?: boolean; shouldContinue(): boolean; onConnected?(): void; onSuccess?(): void; onFail?(): void; onClose(): void; } export declare function isContinueCheck(checker: unknown): checker is ContinueCheck; export declare class Retry { private status; private statusListener; private readonly channel; private readonly checker; private readonly executor; constructor(channel: Channel, executor: MethodExecutor, checker: ContinueCheck); callWhenReady(): void; setConnectionListener(listener: ConnectionListener): void; protected notify(status: ConnectionStatus): void; } export declare class AlwaysRepeat implements ContinueCheck { readonly retries: number; counter: number; closed: boolean; constructor(retries: number); get failed(): boolean; shouldContinue(): boolean; onFail(): void; onClose(): void; onSuccess(): void; } export declare class OnceSuccess extends AlwaysRepeat { succeed: boolean; shouldContinue(): boolean; onSuccess(): void; }