import { NostrEvent } from "nostr-tools";
import { EventPointer, ProfilePointer } from "nostr-tools/nip19";
export type StreamStatus = "live" | "ended" | "planned";
export type StreamRole = "host" | "participant" | "speaker";
export declare function getStreamTitle(stream: NostrEvent): string | undefined;
export declare function getStreamSummary(stream: NostrEvent): string | undefined;
export declare function getStreamImage(stream: NostrEvent): string | undefined;
/** Returns the status of the stream, defaults to ended if the stream is older than 2 weeks */
export declare function getStreamStatus(stream: NostrEvent): StreamStatus;
/** Returns the pubkey of the host of the stream */
export declare function getStreamHost(stream: NostrEvent): ProfilePointer;
/** Returns the participants of a stream */
export declare function getStreamParticipants(stream: NostrEvent): (ProfilePointer & {
    role: StreamRole;
})[];
export declare function getStreamGoalPointer(stream: NostrEvent): EventPointer | undefined;
/** Gets all the streaming urls for a stream */
export declare function getStreamStreamingURLs(stream: NostrEvent): string[];
export declare function getStreamRecording(stream: NostrEvent): string | undefined;
/** Gets the relays for a stream */
export declare function getStreamRelays(stream: NostrEvent): string[] | undefined;
/** Gets the stream start time if it has one */
export declare function getStreamStartTime(stream: NostrEvent): number | undefined;
/** Gets the stream end time if it has one */
export declare function getStreamEndTime(stream: NostrEvent): number | undefined;
/** Returns the current number of participants in the stream */
export declare function getStreamViewers(stream: NostrEvent): number | undefined;
/** Returns the maximum number of participants in the stream */
export declare function getStreamMaxViewers(stream: NostrEvent): number | undefined;
/** Returns the hashtags for a stream */
export declare function getStreamHashtags(stream: NostrEvent): string[];
