import type { EncoderChannelMap, HdmiEncoderConfig } from "./config.js"; import type { Express } from "express"; /** * Returns the current encoder configuration. Safe to call before initialize() — returns the * disabled default in that case. */ export declare function getEncoderConfig(): HdmiEncoderConfig; /** * Returns the merged assignment map (persistent + runtime). Used by the playlist endpoint and * any other consumer that needs a snapshot of all current assignments. */ export declare function getEncoderChannels(): EncoderChannelMap; /** * Initializes the HDMI encoder module. Loads configuration files, sets up browser state, and logs * audio device information. Safe to call multiple times — only runs once. Does nothing if * encoders.json is absent or disabled. */ export declare function initializeEncoderModule(): Promise; /** * Reloads the encoder module from disk. Called when the user saves new settings via the WebUI. * Resets the initialization flag so initializeEncoderModule() runs a fresh load. */ export declare function reloadEncoderModule(): Promise; /** * Sets up all HDMI encoder routes on the Express application and kicks off initialization. * This is the single function that src/routes/index.ts calls (one line, before setupHLSRoutes). * * Routes registered: * GET /hls/:name/stream.m3u8 (intercepts assigned channels; passes others to core handler) * GET /mpegts/:name (intercepts assigned channels; passes others to core handler) * GET /encoder-playlist (standalone M3U8 listing only encoder-assigned channels) * GET /encoder/status (JSON status of all encoder instances) * GET /encoder-ui (WebUI control panel — assign channels, tune, release) * POST /encoder/:index/tune (assign channel + navigate Chrome) * POST /encoder/:index/release (unassign all channels + navigate to blank) * * @param app - The Express application instance. */ export declare function setupEncoderModule(app: Express): void;