import { PubSubEngine } from 'type-graphql';
import { BaseSingleton } from '@memberjunction/global';
/**
 * Singleton manager that holds a reference to the type-graphql PubSubEngine,
 * allowing any server-side code (not just resolvers with @PubSub() injection)
 * to publish events to GraphQL subscriptions.
 */
export declare class PubSubManager extends BaseSingleton<PubSubManager> {
    private _pubSub;
    protected constructor();
    static get Instance(): PubSubManager;
    /**
     * Sets the PubSubEngine instance. Should be called once during server startup
     * after buildSchemaSync creates the PubSub instance.
     */
    SetPubSubEngine(pubSub: PubSubEngine): void;
    /**
     * Gets the current PubSubEngine instance, or null if not yet configured.
     */
    get PubSubEngine(): PubSubEngine | null;
    /**
     * Publishes a payload to the specified topic via the PubSubEngine.
     * No-op if the PubSubEngine has not been configured yet.
     */
    Publish(topic: string, payload: Record<string, unknown>): void;
}
//# sourceMappingURL=PubSubManager.d.ts.map