/**
 * What it does.
 *
 * @param name - Parameter description.
 * @returns Type and description of the returned object.
 *
 * @example
 * ```
 * Write me later.
 * ```
 */
import { Stan } from "node-nats-streaming";
import { Event } from "./event";
export declare abstract class Publisher<T extends Event> {
    private readonly client;
    /**
     *
     */
    abstract channel: T["channel"];
    abstract queue: T["queue"];
    /**
     *
     */
    constructor(client: Stan);
    /**
     *
     */
    publish(data: T["data"]): Promise<void>;
}
