import { MsgHdrs, Subscription, PublishOptions, NatsConnection, RequestOptions } from '@nats-io/nats-core'; import { RequestResult, SubjectSubscriptionConfig } from '../actions/subject'; import { NatsTrafficMetrics, NatsTrafficRecordEvent, NatsTrafficResetEvent } from '../traffic'; type InternalEvents = { type: 'ERROR'; error: Error; } | NatsTrafficRecordEvent; export type ExternalEvents = { type: 'SUBJECT.CONNECT'; connection: NatsConnection; } | { type: 'SUBJECT.CONNECTED'; } | { type: 'SUBJECT.DISCONNECTED'; } | { type: 'SUBJECT.PUBLISH'; subject: string; payload: any; opts?: PublishOptions; onPublishResult?: (result: { ok: true; } | { ok: false; error: Error; }) => void; } | { type: 'SUBJECT.REQUEST'; subject: string; payload: any; opts?: RequestOptions; callback: (data: any) => void; onRequestResult?: (result: RequestResult) => void; requestHeaders?: () => Promise; } | { type: 'SUBJECT.SUBSCRIBE'; config: SubjectSubscriptionConfig; } | { type: 'SUBJECT.UNSUBSCRIBE'; subject: string; } | { type: 'SUBJECT.UNSUBSCRIBE_ALL'; } | NatsTrafficResetEvent; export type Events = InternalEvents | ExternalEvents; export interface Context { uid: string; cachedConnection: NatsConnection | null; subscriptions: Map; subscriptionConfigs: Map; syncRequired: number; trafficMetrics: NatsTrafficMetrics; error?: Error; } export declare const subjectManagerLogic: import("xstate").StateMachine void; } | { type: 'SUBJECT.REQUEST'; subject: string; payload: any; opts?: RequestOptions; callback: (data: any) => void; onRequestResult?: (result: RequestResult) => void; requestHeaders?: () => Promise; } | { type: 'SUBJECT.SUBSCRIBE'; config: SubjectSubscriptionConfig; } | { type: 'SUBJECT.UNSUBSCRIBE'; subject: string; } | { type: 'SUBJECT.UNSUBSCRIBE_ALL'; }, {}, never, { type: "rejectUnavailableRequest"; params: unknown; }, { type: "hasPendingSync"; params: unknown; }, never, "subject_check_sync" | "subject_connected" | "subject_disconnecting" | "subject_error" | "subject_idle" | "subject_syncing", string, import("xstate").NonReducibleUnknown, import("xstate").NonReducibleUnknown, import("xstate").EventObject, import("xstate").MetaObject, { states: { readonly subject_idle: {}; readonly subject_disconnecting: {}; readonly subject_connected: {}; readonly subject_check_sync: {}; readonly subject_syncing: {}; readonly subject_error: {}; }; }, import("xstate").MetaObject>; export {}; //# sourceMappingURL=subject.d.ts.map