UNPKG

1.26 kBTypeScriptView Raw
1import { PollingMeasure } from './polling-measure.js';
2export interface PollingObserverOptions {
3 timeout?: number;
4 interval?: number;
5}
6declare type PollingCallback<T> = () => T | Promise<T>;
7declare type ConditionCallback<T> = (data: T | null | undefined, records: PollingObserver<T>['_records'], object: PollingObserver<T>) => boolean | Promise<boolean>;
8export interface OnfinishFulfilled<T> {
9 status: 'finish' | 'timeout';
10 value: T | null | undefined;
11}
12export interface OnfinishRejected {
13 status: 'error';
14 reason: Error;
15}
16export declare type OnfinishValue<T> = OnfinishFulfilled<T> | OnfinishRejected;
17declare type OnfinishCallback<T> = (value: OnfinishValue<T>, records: PollingObserver<T>['_records'], object: PollingObserver<T>) => unknown;
18export declare class PollingObserver<T> {
19 conditionCallback: ConditionCallback<T>;
20 onfinish?: OnfinishCallback<T>;
21 private _forceStop;
22 private _records;
23 private _isPolling;
24 constructor(conditionCallback: ConditionCallback<T>);
25 disconnect(): void;
26 observe(callback: PollingCallback<T>, options?: PollingObserverOptions): Promise<void>;
27 takeRecords(): PollingMeasure[];
28}
29export default PollingObserver;
30//# sourceMappingURL=polling-observer.d.ts.map
\No newline at end of file