import type { SourceReplyDeliveryMode } from "../../auto-reply/get-reply-options.types.js";
import type { InboundEventKind } from "../../channels/inbound-event/kind.js";
import { resolveCommandSecretRefsViaGateway } from "../../cli/command-secret-gateway.js";
import { getScopedChannelsCommandSecretTargets } from "../../cli/command-secret-targets.js";
import type { DaoCoreConfig } from "../../config/types.daocore.js";
import { runMessageAction } from "../../infra/outbound/message-action-runner.js";
import type { AnyAgentTool } from "./common.js";
type MessageToolOptions = {
    agentAccountId?: string;
    agentSessionKey?: string;
    runId?: string;
    sessionId?: string;
    agentId?: string;
    config?: DaoCoreConfig;
    getRuntimeConfig?: () => DaoCoreConfig;
    getScopedChannelsCommandSecretTargets?: typeof getScopedChannelsCommandSecretTargets;
    resolveCommandSecretRefsViaGateway?: typeof resolveCommandSecretRefsViaGateway;
    runMessageAction?: typeof runMessageAction;
    currentChannelId?: string;
    currentChannelProvider?: string;
    currentThreadTs?: string;
    agentThreadId?: string | number;
    currentMessageId?: string | number;
    replyToMode?: "off" | "first" | "all" | "batched";
    hasRepliedRef?: {
        value: boolean;
    };
    sameChannelThreadRequired?: boolean;
    sandboxRoot?: string;
    requireExplicitTarget?: boolean;
    sourceReplyDeliveryMode?: SourceReplyDeliveryMode;
    inboundEventKind?: InboundEventKind;
    requesterSenderId?: string;
    senderIsOwner?: boolean;
};
export declare function createMessageTool(options?: MessageToolOptions): AnyAgentTool;
export {};
