import { Announced } from "../announced"; import { Broadcast } from "../broadcast"; import * as Path from "../path"; import type { Reader, Stream } from "../stream"; import type { Session } from "./adapter"; import { type Group as GroupMessage } from "./object"; import { type Publish } from "./publish"; import type { PublishNamespace } from "./publish_namespace"; /** * Handles subscribing to broadcasts using moq-transport protocol. * Uses the stream-per-request pattern (real bidi streams for v17, virtual for v14-v16). * * @internal */ export declare class Subscriber { #private; /** * Creates a new Subscriber instance. * @param session - The session abstraction for bidi streams and request IDs * * @internal */ constructor(session: Session); /** * Gets an announced reader for the specified prefix. */ announced(prefix?: Path.Valid): Announced; /** * Consumes a broadcast from the connection. */ consume(path: Path.Valid): Broadcast; /** * Handles an incoming PUBLISH_NAMESPACE on a bidi stream. * Tracks announced broadcasts and notifies consumers. * * @internal */ runPublishNamespace(msg: PublishNamespace, stream: Stream): Promise; /** * Handles an incoming PUBLISH on a bidi stream. * We don't support reverse publish, so send error. * * @internal */ runPublish(msg: Publish, stream: Stream): Promise; /** * Handles an ObjectStream message (group + frames on uni stream). * * @internal */ handleGroup(group: GroupMessage, stream: Reader): Promise; } //# sourceMappingURL=subscriber.d.ts.map