import type { EncoderChannelMap, HdmiEncoderConfig } from "./config.js"; import type { Express } from "express"; /** * Builds a minimal HLS master playlist that points a single stream at the hardware encoder's URL. * Channels DVR follows this to the encoder and does not request any further segments from PrismCast. * * The BANDWIDTH hint (8 Mbps) is approximate; the encoder's actual bitrate depends on hardware * configuration. It is used only as a hint and does not affect stream behaviour. * * @param encoderStreamUrl - The HTTP or RTSP stream URL provided by the hardware encoder. * @returns A complete HLS master playlist string. */ export declare function buildPassthroughM3U8(encoderStreamUrl: string): string; /** * Generates a standalone M3U8 playlist listing only encoder-assigned channels. Each entry points * directly at the encoder's stream URL (bypassing PrismCast entirely for playback). This playlist * can be added to Channels DVR as an additional M3U source alongside the main PrismCast playlist. * * @param config - The loaded encoder configuration. * @param assignments - The encoder channel assignment map. * @param baseUrl - The base URL of the PrismCast server (for tvg-url, not used for streams). * @returns M3U8 content string. */ export declare function generateEncoderPlaylistContent(config: HdmiEncoderConfig, assignments: EncoderChannelMap, baseUrl: string): string; /** * Registers the /encoder-playlist endpoint on the Express app. Returns a 404 if the encoder module * is not enabled or no channels are assigned. * * @param app - The Express application. * @param getConfig - Getter for the current encoder config (evaluated at request time). * @param getChannels - Getter for the current encoder channel assignments (evaluated at request time). */ export declare function setupEncoderPlaylistEndpoint(app: Express, getConfig: () => HdmiEncoderConfig, getChannels: () => EncoderChannelMap): void;