import { ClientConfig, PubSub, SubscriptionOptions } from "@google-cloud/pubsub"; import { DocumentNode, GraphQLSchema } from "graphql"; import { EventBusPlugin, EventBusSubscriberCb, GraphQLEventbusMetadata } from "graphql-eventbus"; export type PubSubEventBusConfig = { clientConfig?: ClientConfig; publisher?: { schema: GraphQLSchema; }; subscriber?: { queries: DocumentNode; schema: GraphQLSchema; cb: EventBusSubscriberCb; options?: SubscriptionOptions; skipTopics?: string[]; includeTopics?: string[]; fanoutTopics?: string[]; }; plugins?: EventBusPlugin[]; serviceName: string; isDarkRelease?: boolean; }; export declare class PubSubEventBus { private config; pubsubClient: PubSub; private publishTopics; private subscriptions; private bus; constructor(config: PubSubEventBusConfig); closeConsumer: () => Promise; closePublisher: () => Promise; init: () => Promise; publish: (a: { topic: string; payload: Record; metadata?: Partial; attributes?: { [k: string]: string; } | null | undefined; }) => Promise; }