import type { ProviderReconciler } from '../resume.js';
import type { SideEffectingExecutor } from './types.js';
export type FeishuReplyInput = {
    larkAppId: string;
    /** Parent message id (om_xxx) being replied to. */
    rootMessageId: string;
    content: string;
    msgType?: string;
    replyInThread?: boolean;
};
export type FeishuReplyOutput = {
    messageId: string;
};
export declare function parseFeishuReplyInput(input: unknown): FeishuReplyInput;
/**
 * `feishu-reply` is similar to `feishu-send` but the canonical input
 * additionally pins `rootMessageId` — spike Test 3c proved that Feishu
 * uuid dedupe IGNORES `parent_id` mismatches, so we must lock the parent
 * into the inputHash; otherwise a retry against a different parent would
 * silently land on the original parent.
 */
export declare const feishuReplyExecutor: SideEffectingExecutor<FeishuReplyInput, FeishuReplyOutput>;
export declare const feishuReplyReconciler: ProviderReconciler;
//# sourceMappingURL=feishu-reply.d.ts.map