import { SupabaseClient } from '@supabase/supabase-js'; import { SlideCommand, SlideCommandType, SlideCommanderOptions } from '../types/controls'; /** * SlideCommander manages sending slide navigation commands via Supabase */ export declare class SlideCommander { private supabase; private sessionId; private deckId; private onError?; private debounceMs; private lastCommandTime; private pendingCommand; private debounceTimer; /** * Create a new SlideCommander instance */ constructor(options: SlideCommanderOptions); /** * Send a slide navigation command * @param type - Type of command (next, prev, goto) * @param slideNumber - Target slide number (required for 'goto') * @returns Promise that resolves when command is sent */ sendCommand(type: SlideCommandType, slideNumber?: number): Promise; /** * Send next slide command */ next(): Promise; /** * Send previous slide command */ prev(): Promise; /** * Send goto slide command * @param slideNumber - Target slide number */ goto(slideNumber: number): Promise; /** * Debounce command sending to prevent rapid-fire clicks */ private debouncedSend; /** * Execute the actual command send to Supabase */ private executeSend; /** * Check if enough time has passed since last command (for manual rate limiting) */ canSendCommand(): boolean; /** * Get the Supabase client (for advanced usage) */ getClient(): SupabaseClient; /** * Clean up resources */ destroy(): void; }