import { Anime } from '../types/anime.js'; export interface DiscordActivity { details?: string; state?: string; timestamps?: { start?: number; end?: number; }; assets?: { large_image?: string; large_text?: string; small_image?: string; small_text?: string; }; buttons?: Array<{ label: string; url: string; }>; } export declare class DiscordRpcService { private socket; private httpServer; private isConnected; private isHandshaken; private clientId; private enabled; private currentActivity; private activeWebPlayerUrl; private baseStreamingState; private reconnectTimer; private isConnecting; constructor(clientId?: string, enabled?: boolean); private startBridgeServer; setEnabled(enabled: boolean): void; private getIpcPath; connect(): Promise; private scheduleReconnect; private setupSocketListeners; private cleanupSocket; private handleMessage; private sendPacket; private sendHandshake; private sendActivity; /** * Set general presence when browsing catalogs or searching */ setBrowsing(category?: string): void; /** * Set presence when viewing anime details or episode selector */ setViewingAnime(anime: Anime): void; /** * Set presence when actively streaming an episode */ setStreaming(anime: Anime, episodeNumber: number, player?: string, quality?: string, isDirect?: boolean): void; /** * Dynamically sync playback scrubber position, duration, and pause/resume state */ updatePlaybackProgress(currentTime: number, duration?: number, isPaused?: boolean): void; /** * Clear current presence */ clearActivity(): void; setWebPlayerUrl(url: string | null): void; /** * Graceful disconnection on app teardown */ disconnect(): void; } export declare const discordRpc: DiscordRpcService;