interface LiveInteraction { id: string; deferred?: boolean; replied?: boolean; } export interface PendingOpts { /** How long before the 3s window we auto-defer (e.g. 2500). */ ackBufferMs: number; /** Ack the interaction (deferUpdate for components, deferReply for commands). */ defer: (interaction: LiveInteraction) => Promise; } /** Tracks live discord.js interactions so a handler can open a modal before the adapter acks. */ export declare class PendingInteractions { private opts; private entries; constructor(opts: PendingOpts); /** Stash a live interaction, arm the auto-defer timer, return its triggerId. */ register(interaction: LiveInteraction): string; /** Run `fn` (e.g. showModal) only if still unresponded. Returns whether it ran. */ respondWith(triggerId: string, fn: (interaction: LiveInteraction) => Promise): Promise; /** After dispatch: ack if the handler never responded. Then forget the entry. */ settle(triggerId: string): Promise; private ack; } export {}; //# sourceMappingURL=pending-interactions.d.ts.map