import type { CliArgs } from '../../cli/args'; type JellyfinRemoteSession = { advertiseNow: () => Promise; }; export function createHandleJellyfinRemoteAnnounceCommand(deps: { startJellyfinRemoteSession: () => Promise; getRemoteSession: () => JellyfinRemoteSession | null; logInfo: (message: string) => void; logWarn: (message: string) => void; }) { return async (args: CliArgs): Promise => { if (!args.jellyfinRemoteAnnounce) { return false; } await deps.startJellyfinRemoteSession(); const remoteSession = deps.getRemoteSession(); if (!remoteSession) { deps.logWarn('Jellyfin remote session is not available.'); return true; } const visible = await remoteSession.advertiseNow(); if (visible) { deps.logInfo('Jellyfin cast target is visible in server sessions.'); } else { deps.logWarn( 'Jellyfin remote announce sent, but cast target is not visible in server sessions yet.', ); } return true; }; }