export interface DeferredTopicBinding { sessionId: string; turnId: string; chatId: string; larkAppId: string; routingAnchor: string; rootMessageId: string; createdAt: string; } export declare function deferredTopicBindingPath(dataDir: string, sessionId: string): string; export declare function readDeferredTopicBinding(dataDir: string, sessionId: string): DeferredTopicBinding | undefined; export declare function writeDeferredTopicBinding(dataDir: string, binding: DeferredTopicBinding): void; /** Serialize the first-message claim across concurrent `botmux send` * processes. The callback may hold the lock across the Lark request: that is * intentional, because releasing it before the provider returns would allow * two callers to create two roots for the same deferred run. */ export declare function withDeferredTopicBindingLock(dataDir: string, sessionId: string, fn: () => Promise): Promise; export declare function removeDeferredTopicBinding(dataDir: string, sessionId: string): void; //# sourceMappingURL=deferred-topic-binding.d.ts.map