import type { FanoutTree, FanoutTreeChannelOptions, FanoutTreeDataEvent, FanoutTreeJoinOptions, FanoutTreeUnicastEvent } from "./fanout-tree.js"; export interface FanoutChannelEvents { data: CustomEvent; unicast: CustomEvent; joined: CustomEvent<{ topic: string; root: string; parent: string; }>; kicked: CustomEvent<{ topic: string; root: string; from: string; }>; } export declare class FanoutChannel extends EventTarget { private readonly fanout; readonly root: string; readonly topic: string; private listening; private readonly onData; private readonly onUnicast; private readonly onJoined; private readonly onKicked; constructor(fanout: FanoutTree, opts: { topic: string; root: string; }); static fromSelf(fanout: FanoutTree, topic: string): FanoutChannel; private ensureListening; close(): void; leave(options?: { notifyParent?: boolean; kickChildren?: boolean; }): Promise; openAsRoot(options: Omit): import("./fanout-tree.js").FanoutTreeChannelId; join(options: Omit, joinOpts?: FanoutTreeJoinOptions): Promise; publish(payload: Uint8Array): Promise; publishMaybe(payload: Uint8Array): Promise; getPeerHashes(options?: { includeSelf?: boolean; }): string[]; getRouteToken(): string[]; resolveRouteToken(targetHash: string, options?: { timeoutMs?: number; signal?: AbortSignal; }): Promise; unicast(toRoute: string[], payload: Uint8Array): Promise; unicastTo(targetHash: string, payload: Uint8Array, options?: { timeoutMs?: number; signal?: AbortSignal; }): Promise; unicastAck(toRoute: string[], payload: Uint8Array, options?: { timeoutMs?: number; signal?: AbortSignal; }): Promise; unicastToAck(targetHash: string, payload: Uint8Array, options?: { timeoutMs?: number; signal?: AbortSignal; }): Promise; end(lastSeqExclusive: number): Promise; } //# sourceMappingURL=fanout-channel.d.ts.map