import type { PartitionMap, SortedSet } from '../adapters/types.js'; import { ListMultimap } from '@console-one/multimap'; import { Table } from '../vendor/table.js'; import { Subscription } from '@console-one/subscription'; import { Metric } from './metric.js'; import { TimelineKey } from './timeline-key.js'; export type MetricRef = Table.Columns.Default | string; export type PartitionRef = Table.Columns.Default | string; export type Partition = Table.Columns.Default; export type MetricPartition = Table.Columns.Default; export type IndexMetricPartition = Table.Columns.Default; export type IndexMetricPartitionEvent = Table.Columns.Default; export type EventTrigger = Table.Columns.Default; export type TimelineName = string; declare enum InternalEvent { ADD = "ADD", REMOVE = "REMVOE" } export declare class Monitor { name: TimelineName; sset: SortedSet; last: PartitionMap; listeners: PartitionMap; fallbacks: ListMultimap; subscriptions: Map>; metricsByName: { [key: string]: Metric; }; metricsByColumns: Table; events: Map>; constructor(name: TimelineName, metrics: Metric[], sset: SortedSet, last: PartitionMap, listeners: PartitionMap, fallbacks?: ListMultimap, subscriptions?: Map>); private _add; private _remove; _on(metricRef: MetricRef, partitionRef: PartitionRef, method: InternalEvent, state: any): void; add(metricRef: MetricRef, partitionRef: PartitionRef, next: TimelineKey, current?: TimelineKey): Promise; addSafe(metricRef: MetricRef, partitionRef: PartitionRef, next: TimelineKey, current?: TimelineKey): Promise; connect(metricRef: MetricRef, partitionRef: PartitionRef, externalEvent: Monitor.Event, state?: string): Promise; next(metricRef: MetricRef, partitionRef: PartitionRef): Promise; remove(metricRef: MetricRef, partitionRef: PartitionRef, current: TimelineKey): Promise; readKeys(metricRef: MetricRef, partitionRef: PartitionRef, options: { start?: number; end?: number; batchSize?: number; }): AsyncGenerator; partitions(): AsyncGenerator<[Table.Columns.Default, TimelineKey]>; has(metricRef: MetricRef, partitionRef: PartitionRef): Promise; canRetrieve(metricRef: MetricRef, partitionRef: PartitionRef): Promise; state(metricRef: MetricRef, partitionRef: PartitionRef): Promise; retrieve(metricRef: MetricRef, partitionRef: PartitionRef): Promise; private getMetric; private getPartition; } export declare namespace Monitor { enum Event { NAME = "NAME", ADD = "ADD", REMOVE = "REMOVE" } } export {}; //# sourceMappingURL=monitor.d.ts.map