import { ChannelCredentials, Metadata } from 'grpc'; import { Confirmation } from './proto/event_pb'; export interface EventBase { aggregateIdentifier: string; aggregateSequenceNumber: number; aggregateType: string; timestamp: number; payload?: { type: Type; revision: string; data: Data; }; } export interface AggregateEvent extends EventBase { messageIdentifier: string; snapshot?: boolean; } export interface Event extends EventBase { token: number; } interface Options { endpoint: string; meta: Metadata; credentials: ChannelCredentials; } export interface ListAggregateEventsOptions { aggregateId: string; allowSnapshots?: boolean; initialSequence?: number; trackingToken?: number; maxSequence?: number; } export interface ListAggregateSnapshotsOptions { aggregateId: string; initialSequence?: number; maxSequence?: number; } export interface BlacklistItem { type: string; revision?: string; } export interface ListEventOptions { blacklistItems?: BlacklistItem[]; clientId?: string; componentName?: string; forceReadFromLeader?: boolean; processor?: string; trackingToken?: number; numberOfPermits?: number; } export declare type NumericQueryOperator = { $lt: number; } | { $lte: number; } | { $gt: number; } | { $gte: number; } | { $eq: number; }; export interface QueryEventsOptions { token?: number | NumericQueryOperator; aggregateIdentifier?: string; aggregateSequenceNumber?: number | NumericQueryOperator; aggregateType?: string; payloadType?: string; payloadRevision?: string; timestamp?: number | NumericQueryOperator; numberOfPermits?: number; } export interface QueryItem { token: number; aggregateIdentifier: string; aggregateSequenceNumber: number; aggregateType: string; eventIdentifier: string; payload?: { type: string; revision: string; data: T; }; timestamp: number; } export declare class EventBus { private eventClient; private meta; private currentEventStream; constructor({ endpoint, credentials, meta }: Options); queryEvents(options: QueryEventsOptions): import("rxjs").Observable>; getFirstToken(): Promise; getLastToken(): Promise; getTokenAt(instant: number): Promise; listAggregateEvents({ aggregateId, allowSnapshots, initialSequence, trackingToken, maxSequence, }: ListAggregateEventsOptions): Promise[]>; listAggregateSnapshots({ aggregateId, initialSequence, maxSequence, }: ListAggregateSnapshotsOptions): Promise; listEvents({ blacklistItems, clientId, componentName, forceReadFromLeader, processor, trackingToken, numberOfPermits, }?: ListEventOptions): import("rxjs").Observable | null>; appendEvents(event: AggregateEvent | AggregateEvent[]): Promise; close(): void; } export {};