@polygonlabs/servercore 1.5.0 → 1.5.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (109) hide show
  1. package/dist/index.d.ts +443 -31
  2. package/dist/index.js +951 -8
  3. package/dist/index.js.map +1 -1
  4. package/package.json +5 -3
  5. package/dist/api/health-check.d.ts +0 -8
  6. package/dist/api/health-check.js +0 -89
  7. package/dist/api/health-check.js.map +0 -1
  8. package/dist/api/index.d.ts +0 -9
  9. package/dist/api/index.js +0 -4
  10. package/dist/api/index.js.map +0 -1
  11. package/dist/api/response_handler.d.ts +0 -15
  12. package/dist/api/response_handler.js +0 -23
  13. package/dist/api/response_handler.js.map +0 -1
  14. package/dist/api/zod_utils.d.ts +0 -7
  15. package/dist/api/zod_utils.js +0 -42
  16. package/dist/api/zod_utils.js.map +0 -1
  17. package/dist/constants/error_codes.d.ts +0 -29
  18. package/dist/constants/error_codes.js +0 -34
  19. package/dist/constants/error_codes.js.map +0 -1
  20. package/dist/constants/http_success_codes.d.ts +0 -5
  21. package/dist/constants/http_success_codes.js +0 -7
  22. package/dist/constants/http_success_codes.js.map +0 -1
  23. package/dist/constants/index.d.ts +0 -2
  24. package/dist/constants/index.js +0 -3
  25. package/dist/constants/index.js.map +0 -1
  26. package/dist/consumers/abstract_cron_event_consumer.d.ts +0 -23
  27. package/dist/consumers/abstract_cron_event_consumer.js +0 -30
  28. package/dist/consumers/abstract_cron_event_consumer.js.map +0 -1
  29. package/dist/consumers/abstract_event_consumer.d.ts +0 -34
  30. package/dist/consumers/abstract_event_consumer.js +0 -41
  31. package/dist/consumers/abstract_event_consumer.js.map +0 -1
  32. package/dist/consumers/event_consumer.d.ts +0 -26
  33. package/dist/consumers/event_consumer.js +0 -141
  34. package/dist/consumers/event_consumer.js.map +0 -1
  35. package/dist/consumers/index.d.ts +0 -11
  36. package/dist/consumers/index.js +0 -4
  37. package/dist/consumers/index.js.map +0 -1
  38. package/dist/consumers/rest_api_consumer.d.ts +0 -30
  39. package/dist/consumers/rest_api_consumer.js +0 -131
  40. package/dist/consumers/rest_api_consumer.js.map +0 -1
  41. package/dist/errors/api_errors.d.ts +0 -32
  42. package/dist/errors/api_errors.js +0 -96
  43. package/dist/errors/api_errors.js.map +0 -1
  44. package/dist/errors/base_error.d.ts +0 -22
  45. package/dist/errors/base_error.js +0 -30
  46. package/dist/errors/base_error.js.map +0 -1
  47. package/dist/errors/consumer_errors.d.ts +0 -13
  48. package/dist/errors/consumer_errors.js +0 -18
  49. package/dist/errors/consumer_errors.js.map +0 -1
  50. package/dist/errors/database_errors.d.ts +0 -13
  51. package/dist/errors/database_errors.js +0 -18
  52. package/dist/errors/database_errors.js.map +0 -1
  53. package/dist/errors/external_dependency_error.d.ts +0 -15
  54. package/dist/errors/external_dependency_error.js +0 -29
  55. package/dist/errors/external_dependency_error.js.map +0 -1
  56. package/dist/errors/index.d.ts +0 -5
  57. package/dist/errors/index.js +0 -6
  58. package/dist/errors/index.js.map +0 -1
  59. package/dist/logger/index.d.ts +0 -3
  60. package/dist/logger/index.js +0 -2
  61. package/dist/logger/index.js.map +0 -1
  62. package/dist/logger/logger.d.ts +0 -54
  63. package/dist/logger/logger.js +0 -124
  64. package/dist/logger/logger.js.map +0 -1
  65. package/dist/storage/cache_interface.d.ts +0 -13
  66. package/dist/storage/cache_interface.js +0 -1
  67. package/dist/storage/cache_interface.js.map +0 -1
  68. package/dist/storage/db_interface.d.ts +0 -18
  69. package/dist/storage/db_interface.js +0 -1
  70. package/dist/storage/db_interface.js.map +0 -1
  71. package/dist/storage/index.d.ts +0 -5
  72. package/dist/storage/index.js +0 -4
  73. package/dist/storage/index.js.map +0 -1
  74. package/dist/storage/queue_interface.d.ts +0 -11
  75. package/dist/storage/queue_interface.js +0 -1
  76. package/dist/storage/queue_interface.js.map +0 -1
  77. package/dist/types/database.d.ts +0 -62
  78. package/dist/types/database.js +0 -1
  79. package/dist/types/database.js.map +0 -1
  80. package/dist/types/event_consumer_config.d.ts +0 -19
  81. package/dist/types/event_consumer_config.js +0 -1
  82. package/dist/types/event_consumer_config.js.map +0 -1
  83. package/dist/types/index.d.ts +0 -9
  84. package/dist/types/index.js +0 -8
  85. package/dist/types/index.js.map +0 -1
  86. package/dist/types/logger_config.d.ts +0 -18
  87. package/dist/types/logger_config.js +0 -2
  88. package/dist/types/logger_config.js.map +0 -1
  89. package/dist/types/observer.d.ts +0 -8
  90. package/dist/types/observer.js +0 -1
  91. package/dist/types/observer.js.map +0 -1
  92. package/dist/types/queue_job_opts.d.ts +0 -5
  93. package/dist/types/queue_job_opts.js +0 -1
  94. package/dist/types/queue_job_opts.js.map +0 -1
  95. package/dist/types/response_context.d.ts +0 -6
  96. package/dist/types/response_context.js +0 -1
  97. package/dist/types/response_context.js.map +0 -1
  98. package/dist/types/rest_api_consumer_config.d.ts +0 -17
  99. package/dist/types/rest_api_consumer_config.js +0 -1
  100. package/dist/types/rest_api_consumer_config.js.map +0 -1
  101. package/dist/utils/decoder.d.ts +0 -10
  102. package/dist/utils/decoder.js +0 -12
  103. package/dist/utils/decoder.js.map +0 -1
  104. package/dist/utils/index.d.ts +0 -2
  105. package/dist/utils/index.js +0 -3
  106. package/dist/utils/index.js.map +0 -1
  107. package/dist/utils/ulid.d.ts +0 -3
  108. package/dist/utils/ulid.js +0 -24
  109. package/dist/utils/ulid.js.map +0 -1
package/dist/index.d.ts CHANGED
@@ -1,31 +1,443 @@
1
- export { handleError, handleResponse } from './api/response_handler.js';
2
- export { validateBody, validateParams, validateQuery } from './api/zod_utils.js';
3
- export { HealthCheck, setupHealthCheckServer } from './api/health-check.js';
4
- export { Logger } from './logger/logger.js';
5
- export { errorCodes } from './constants/error_codes.js';
6
- export { httpResponseCodes } from './constants/http_success_codes.js';
7
- export { ILoggerConfig } from './types/logger_config.js';
8
- export { AddDocumentsParams, ConditionalUpdateDocumentsParams, DeleteDocumentsParams, GetCollectionGroupParams, GetDocumentParams, GetDocumentsParams, IDocumentConditionalModifications, IQueryFilterOperationParams, IQueryOrFilterParams, IQueryOrderOperationParams, OrderByDirection, UpdateDocumentsParams, WhereFilterOp } from './types/database.js';
9
- export { IObserver } from './types/observer.js';
10
- export { ChainNativeCurrency, IEventConsumerConfig } from './types/event_consumer_config.js';
11
- export { ResponseContext } from './types/response_context.js';
12
- export { JobOpts } from './types/queue_job_opts.js';
13
- export { IRestAPIConsumerConfig } from './types/rest_api_consumer_config.js';
14
- export { ApiError, BadRequestError, ForbiddenError, NotFoundError, RateLimitError, TimeoutError, UnauthorizedError } from './errors/api_errors.js';
15
- export { DatabaseError } from './errors/database_errors.js';
16
- export { ExternalDependencyError } from './errors/external_dependency_error.js';
17
- export { BaseError } from './errors/base_error.js';
18
- export { ConsumerError } from './errors/consumer_errors.js';
19
- export { Database } from './storage/db_interface.js';
20
- export { IQueue } from './storage/queue_interface.js';
21
- export { ICache } from './storage/cache_interface.js';
22
- export { EventConsumer } from './consumers/event_consumer.js';
23
- export { RestAPIConsumer } from './consumers/rest_api_consumer.js';
24
- export { AbstractCronEventConsumer } from './consumers/abstract_cron_event_consumer.js';
25
- export { decodeAbiParams, parseEventLog } from './utils/decoder.js';
26
- export { generateDeterministicULID } from './utils/ulid.js';
27
- import 'zod';
28
- import 'winston';
29
- import 'viem';
30
- import './consumers/abstract_event_consumer.js';
31
- import 'events';
1
+ import { z } from 'zod';
2
+ import winston from 'winston';
3
+ import { Address, AbiEvent, PublicClient, WatchEventReturnType } from 'viem';
4
+ import { EventEmitter } from 'events';
5
+
6
+ /**
7
+ * BaseError used within the micro services that guarantees we don't loose the stack trace.
8
+ */
9
+ declare class BaseError extends Error {
10
+ readonly name: string;
11
+ readonly code: number;
12
+ readonly isFatal: boolean;
13
+ readonly origin: string;
14
+ readonly context: Record<string, any>;
15
+ /**
16
+ * @param name {string} - The error name
17
+ * @param code {number} - The error code
18
+ * @param isFatal {boolean} - Flag to know if it is a fatal error
19
+ * @param message {string} - The actual error message
20
+ * @param origin {string} - The point this error originated
21
+ * @param context Record<string, any> - The stack trace
22
+ */
23
+ constructor(name: string, code: number, message?: string, isFatal?: boolean, origin?: string, context?: Record<string, any>);
24
+ identifier: number;
25
+ }
26
+
27
+ declare class ApiError extends BaseError {
28
+ constructor(message: string, { name, code, isFatal, origin, context, }?: {
29
+ name?: string;
30
+ code?: number;
31
+ isFatal?: boolean;
32
+ origin?: string;
33
+ context?: Record<string, any>;
34
+ });
35
+ }
36
+ declare class UnauthorizedError extends ApiError {
37
+ constructor(message?: string, context?: Record<string, any>, origin?: string);
38
+ }
39
+ declare class ForbiddenError extends ApiError {
40
+ constructor(message?: string, context?: Record<string, any>, origin?: string);
41
+ }
42
+ declare class BadRequestError extends ApiError {
43
+ readonly validationErrors: Record<string, string[]>;
44
+ constructor(message?: string, validationErrors?: Record<string, any>, context?: Record<string, any>, origin?: string);
45
+ }
46
+ declare class NotFoundError extends ApiError {
47
+ constructor(message: string, entity?: string, identifier?: string | number, context?: Record<string, any>, origin?: string);
48
+ }
49
+ declare class RateLimitError extends ApiError {
50
+ constructor(message?: string, context?: Record<string, any>, origin?: string);
51
+ }
52
+ declare class TimeoutError extends ApiError {
53
+ constructor(operation: string, timeoutMs: number, context?: Record<string, any>, origin?: string);
54
+ }
55
+
56
+ declare class DatabaseError extends BaseError {
57
+ constructor(message: string, originalError?: Error, { name, code, isFatal, origin, context, }?: {
58
+ name?: string;
59
+ code?: number;
60
+ isFatal?: boolean;
61
+ origin?: string;
62
+ context?: Record<string, any>;
63
+ });
64
+ }
65
+
66
+ declare class ExternalDependencyError extends BaseError {
67
+ readonly apiName: string;
68
+ readonly externalCode?: string | number;
69
+ readonly rawError?: any;
70
+ constructor(apiName: string, message: string, { externalCode, rawError, context, origin, }?: {
71
+ externalCode?: string | number;
72
+ rawError?: any;
73
+ context?: Record<string, any>;
74
+ origin?: string;
75
+ });
76
+ }
77
+
78
+ declare class ConsumerError extends BaseError {
79
+ constructor(message: string, { name, code, isFatal, origin, context, }?: {
80
+ name?: string;
81
+ code?: number;
82
+ isFatal?: boolean;
83
+ origin?: string;
84
+ context?: Record<string, any>;
85
+ });
86
+ }
87
+
88
+ /**
89
+ * Logger configuration interface
90
+ */
91
+ interface ILoggerConfig {
92
+ sentry?: {
93
+ dsn?: string;
94
+ level?: string;
95
+ environment?: string;
96
+ };
97
+ console?: {
98
+ level?: string;
99
+ };
100
+ winston?: winston.LoggerOptions;
101
+ }
102
+
103
+ type WhereFilterOp = "<" | "<=" | "==" | "!=" | ">=" | ">" | "array-contains" | "in" | "not-in" | "array-contains-any";
104
+ type OrderByDirection = "desc" | "asc";
105
+ interface IQueryFilterOperationParams {
106
+ field: string;
107
+ operator: WhereFilterOp;
108
+ value: string | number | boolean | string[] | number[];
109
+ }
110
+ interface IQueryOrderOperationParams {
111
+ field: string;
112
+ order: OrderByDirection;
113
+ }
114
+ interface IDocumentConditionalModifications {
115
+ field: string;
116
+ value: string | number | boolean;
117
+ defaultValue: string | number | boolean;
118
+ }
119
+ interface IQueryOrFilterParams {
120
+ or: IQueryFilterOperationParams[];
121
+ }
122
+ interface AddDocumentsParams {
123
+ collectionPaths: string[] | string;
124
+ docDatas: any[];
125
+ docIds?: string[];
126
+ }
127
+ interface UpdateDocumentsParams {
128
+ collectionPaths: string[] | string;
129
+ docDatas: any[];
130
+ docIds: string[];
131
+ }
132
+ interface ConditionalUpdateDocumentsParams {
133
+ collectionPaths: string[] | string;
134
+ docDatas: any[];
135
+ docIds: string[];
136
+ conditions: IQueryFilterOperationParams[];
137
+ conditionModifications: IDocumentConditionalModifications[];
138
+ }
139
+ interface GetDocumentsParams {
140
+ collectionPath: string;
141
+ filter?: IQueryFilterOperationParams[];
142
+ limit?: number;
143
+ order?: IQueryOrderOperationParams[];
144
+ startAfterCursor?: string | number;
145
+ selectFields?: string[];
146
+ orFilters?: IQueryOrFilterParams[];
147
+ offset?: number;
148
+ returnTotalDocumentsCount?: boolean;
149
+ }
150
+ interface GetDocumentParams {
151
+ collectionId: string;
152
+ docId: string;
153
+ }
154
+ interface DeleteDocumentsParams {
155
+ collectionId: string;
156
+ docIds: string[];
157
+ }
158
+ interface GetCollectionGroupParams {
159
+ groupId: string;
160
+ filter?: IQueryFilterOperationParams[];
161
+ orFilters?: IQueryOrFilterParams[];
162
+ }
163
+
164
+ interface IObserver<T, E, U> {
165
+ next: (value: T) => Promise<void> | void;
166
+ summary: (value: U) => Promise<void> | void;
167
+ error: (value: E) => void;
168
+ closed: () => void;
169
+ }
170
+
171
+ type ChainNativeCurrency = {
172
+ name: string;
173
+ symbol: string;
174
+ decimals: number;
175
+ };
176
+ interface IEventConsumerConfig {
177
+ contractAddress: Address | Address[];
178
+ events: AbiEvent[];
179
+ chainId: number;
180
+ rpcUrl: string;
181
+ nativeCurrency: ChainNativeCurrency;
182
+ startBlock: bigint;
183
+ pollBatchSize: bigint;
184
+ pollInterval: number;
185
+ }
186
+
187
+ type ResponseContext = {
188
+ status: (statusCode: number) => ResponseContext;
189
+ json: (body: any) => any;
190
+ };
191
+
192
+ type JobOpts = {
193
+ replace?: boolean;
194
+ };
195
+
196
+ interface IRestAPIConsumerConfig {
197
+ apiUrl: URL;
198
+ startCount: {
199
+ key: string;
200
+ value: number;
201
+ };
202
+ cronExpr?: string;
203
+ pollSize?: number;
204
+ body?: Record<string, any>;
205
+ headers?: Record<string, string>;
206
+ method?: "GET" | "POST";
207
+ params?: Record<string, string>;
208
+ paginationParam?: string;
209
+ resultPath?: string;
210
+ }
211
+
212
+ declare const handleResponse: (c: ResponseContext, data: any, pagination?: {
213
+ total: number;
214
+ limit: number;
215
+ offset?: number;
216
+ nextStartAfterCursor?: string | number;
217
+ }) => any;
218
+ declare const handleError: (c: ResponseContext, error: ApiError | ExternalDependencyError | DatabaseError) => any;
219
+
220
+ declare const validateBody: <T extends z.ZodTypeAny>(schema: T, data: unknown) => z.infer<T>;
221
+ declare const validateQuery: <T extends z.ZodTypeAny>(schema: T, query: Record<string, unknown>) => z.infer<T>;
222
+ declare const validateParams: <T extends z.ZodTypeAny>(schema: T, params: Record<string, string>) => z.infer<T>;
223
+
224
+ declare class HealthCheck {
225
+ private readonly urls;
226
+ constructor(urls: string[]);
227
+ checkHealth(): Promise<string>;
228
+ }
229
+ declare function setupHealthCheckServer(urls: string[], serverPort: number, func?: Function): void;
230
+
231
+ declare class Logger {
232
+ private static logger;
233
+ /**
234
+ * @static
235
+ * Create method must first be called before using the logger. It creates a singleton, which will then
236
+ * be referred to throughout the application.
237
+ */
238
+ static create(config: ILoggerConfig): void;
239
+ static ensureInitialized(): void;
240
+ /**
241
+ * @static
242
+ * Method to log for level - "info", this should not be called if it has been custom levels are
243
+ * set which does not include "info"
244
+ *
245
+ * @param {string|object} message - String or object to log.
246
+ */
247
+ static info(message: string | object): void;
248
+ /**
249
+ * @static
250
+ * Method to log for level - "debug", this should not be called if it has been custom levels are
251
+ * set which does not include "debug"
252
+ *
253
+ * @param {string|object} message - String or object to log.
254
+ */
255
+ static debug(message: string | object): void;
256
+ /**
257
+ * @static
258
+ * Method to log for level - "error", this should not be called if it has been custom levels are
259
+ * set which does not include "error"
260
+ *
261
+ * @param {string|object} error - String or object to log.
262
+ */
263
+ static error(error: string | object): void;
264
+ /**
265
+ * @static
266
+ * Method to log for level - "warn", this should not be called if it has been custom levels are
267
+ * set which does not include "warn"
268
+ *
269
+ * @param {string|object} message - String or object to log.
270
+ */
271
+ static warn(message: string | object): void;
272
+ /**
273
+ * @static
274
+ * Method to log for any level, which should be used to log all custom levels that may be added.
275
+ *
276
+ * @param {string|object} message - String or object to log.
277
+ */
278
+ static log(level: string, message: string | object): void;
279
+ }
280
+
281
+ declare const errorCodes: {
282
+ base: {
283
+ BASE_ERROR: number;
284
+ };
285
+ consumer: {
286
+ UNKNOWN_CONSUMER_ERR: number;
287
+ };
288
+ datastore: {
289
+ UNKNOWN_DATASTORE_ERR: number;
290
+ DATASTORE_AUTH_ERR: number;
291
+ DATASTORE_READ_ERROR: number;
292
+ DATASTORE_WRITE_ERROR: number;
293
+ };
294
+ external: {
295
+ UNKNOWN_EXTERNAL_DEPENDENCY_ERROR: number;
296
+ };
297
+ api: {
298
+ BAD_REQUEST: number;
299
+ UNAUTHORIZED: number;
300
+ FORBIDDEN: number;
301
+ NOT_FOUND: number;
302
+ TOO_MANY_REQUESTS: number;
303
+ INTERNAL_SERVER_ERROR: number;
304
+ GATEWAY_ERROR: number;
305
+ TIMEOUT_ERROR: number;
306
+ };
307
+ };
308
+
309
+ declare const httpResponseCodes: {
310
+ OK_RESPONSE: number;
311
+ };
312
+
313
+ interface Database {
314
+ connect(): Promise<void>;
315
+ disconnect(): Promise<void>;
316
+ addDocuments(params: AddDocumentsParams): Promise<void>;
317
+ updateDocuments(params: UpdateDocumentsParams): Promise<void>;
318
+ conditionalUpdateDocuments(params: ConditionalUpdateDocumentsParams): Promise<void>;
319
+ getDocuments(params: GetDocumentsParams): Promise<{
320
+ documents: any[];
321
+ totalDocumentsCount?: number;
322
+ }>;
323
+ getDocument(params: GetDocumentParams): Promise<any | null>;
324
+ getCollectionGroup(params: GetCollectionGroupParams): Promise<any | null>;
325
+ deleteDocuments(params: DeleteDocumentsParams): Promise<void>;
326
+ }
327
+
328
+ interface IQueue<JobData = any, JobResult = any> {
329
+ addJob(name: string, data: JobData, jobOpts?: JobOpts): Promise<void>;
330
+ pause(): Promise<void>;
331
+ resume(): Promise<void>;
332
+ clean(type: "completed" | "failed" | "wait" | "delayed"): Promise<void>;
333
+ getJobCounts(): Promise<Record<string, number>>;
334
+ }
335
+
336
+ interface ICache<T = any> {
337
+ connect(): Promise<void>;
338
+ disconnect(): Promise<void>;
339
+ get(key: string): Promise<T | null>;
340
+ set(key: string, value: T, ttlSeconds?: number): Promise<void>;
341
+ delete(key: string): Promise<boolean>;
342
+ exists(key: string): Promise<boolean>;
343
+ clear(): Promise<void>;
344
+ ttl(key: string): Promise<number>;
345
+ keys(pattern?: string): Promise<string[]>;
346
+ }
347
+
348
+ declare class AbstractEventConsumer extends EventEmitter {
349
+ constructor();
350
+ /**
351
+ * @public
352
+ *
353
+ * Method to register listener for events. The Abstract Event Consumer emits fatalError
354
+ * event.
355
+ *
356
+ * @param {"fatalError"} eventName - Event name to register listener for.
357
+ * @param listener - Listener to be called when emitting the event.
358
+ *
359
+ * @returns {this} - Returns an instance of the class.
360
+ */
361
+ on(eventName: "fatalError", listener: (error: Error | ConsumerError) => void): this;
362
+ /**
363
+ * @public
364
+ *
365
+ * Method to register listener for events that will be called only once. The Abstract Event Consumer emits fatalError
366
+ * event.
367
+ *
368
+ * @param {"fatalError"} eventName - Event name to register listener for.
369
+ * @param listener - Listener to be called when emitting the event.
370
+ *
371
+ * @returns {this} - Returns an instance of the class.
372
+ */
373
+ once(eventName: "fatalError", listener: (error: Error | ConsumerError) => void): this;
374
+ protected onFatalError(error: Error | ConsumerError): void;
375
+ }
376
+
377
+ declare class EventConsumer<T, U> extends AbstractEventConsumer {
378
+ private readonly config;
379
+ protected client: PublicClient | null;
380
+ protected observer: IObserver<T, ConsumerError, U> | null;
381
+ isBackfillingInProcess: boolean;
382
+ protected unWatchFunction: WatchEventReturnType | undefined;
383
+ constructor(config: IEventConsumerConfig);
384
+ private _backfillEvents;
385
+ start(observer: IObserver<T, ConsumerError, U>): Promise<void>;
386
+ /**
387
+ * Private method which updates the connection status of consumer to disconnected, and removes all listeners.
388
+ *
389
+ * @returns {void}
390
+ */
391
+ onDisconnect(): void;
392
+ }
393
+
394
+ declare abstract class AbstractCronEventConsumer extends AbstractEventConsumer {
395
+ private cronJob;
396
+ /**
397
+ * Start the cron job with the given cron expression.
398
+ * @param cronExpr Cron expression string
399
+ */
400
+ startCron(cronExpr: string): void;
401
+ /**
402
+ * Stop the cron job.
403
+ */
404
+ stopCron(): void;
405
+ /**
406
+ * Implement this in subclasses to define what happens on each cron tick.
407
+ */
408
+ protected abstract onTick(): Promise<void>;
409
+ }
410
+
411
+ declare class RestAPIConsumer<T, U> extends AbstractCronEventConsumer {
412
+ private readonly config;
413
+ protected observer: IObserver<T, ConsumerError, U> | null;
414
+ private currentPage;
415
+ private highestValueSeen;
416
+ constructor(config: IRestAPIConsumerConfig);
417
+ start(observer: IObserver<T, ConsumerError, U>): Promise<void>;
418
+ stop(): void;
419
+ protected onTick(): Promise<void>;
420
+ private fetchPage;
421
+ private getValueByPath;
422
+ private processDataForCurrentCountValue;
423
+ /**
424
+ * Updates the start count value to a specific value.
425
+ * This allows reprocessing data from a specified point.
426
+ *
427
+ * @param value The value to set as the new start count
428
+ */
429
+ setStartValue(value: number): void;
430
+ }
431
+
432
+ declare const parseEventLog: (eventSignature: string[], data: `0x${string}`, topics: any) => {
433
+ eventName: undefined;
434
+ args: readonly unknown[] | undefined;
435
+ };
436
+ declare const decodeAbiParams: (params: Array<{
437
+ name?: string;
438
+ type: string;
439
+ }>, data: `0x${string}`) => readonly unknown[];
440
+
441
+ declare function generateDeterministicULID(dataToEncode: string[], timeSeed?: number, separator?: string): string;
442
+
443
+ export { AbstractCronEventConsumer, type AddDocumentsParams, ApiError, BadRequestError, BaseError, type ChainNativeCurrency, type ConditionalUpdateDocumentsParams, ConsumerError, type Database, DatabaseError, type DeleteDocumentsParams, EventConsumer, ExternalDependencyError, ForbiddenError, type GetCollectionGroupParams, type GetDocumentParams, type GetDocumentsParams, HealthCheck, type ICache, type IDocumentConditionalModifications, type IEventConsumerConfig, type ILoggerConfig, type IObserver, type IQueryFilterOperationParams, type IQueryOrFilterParams, type IQueryOrderOperationParams, type IQueue, type IRestAPIConsumerConfig, type JobOpts, Logger, NotFoundError, type OrderByDirection, RateLimitError, type ResponseContext, RestAPIConsumer, TimeoutError, UnauthorizedError, type UpdateDocumentsParams, type WhereFilterOp, decodeAbiParams, errorCodes, generateDeterministicULID, handleError, handleResponse, httpResponseCodes, parseEventLog, setupHealthCheckServer, validateBody, validateParams, validateQuery };