import type { KaijiBotConfig } from "../config/config.js";
export type EffectiveToolSource = "core" | "plugin" | "channel";
export type EffectiveToolInventoryEntry = {
    id: string;
    label: string;
    description: string;
    rawDescription: string;
    source: EffectiveToolSource;
    pluginId?: string;
    channelId?: string;
};
export type EffectiveToolInventoryGroup = {
    id: EffectiveToolSource;
    label: string;
    source: EffectiveToolSource;
    tools: EffectiveToolInventoryEntry[];
};
export type EffectiveToolInventoryResult = {
    agentId: string;
    profile: string;
    groups: EffectiveToolInventoryGroup[];
};
export type ResolveEffectiveToolInventoryParams = {
    cfg: KaijiBotConfig;
    agentId?: string;
    sessionKey?: string;
    workspaceDir?: string;
    agentDir?: string;
    messageProvider?: string;
    senderIsOwner?: boolean;
    senderId?: string | null;
    senderName?: string | null;
    senderUsername?: string | null;
    senderE164?: string | null;
    accountId?: string | null;
    modelProvider?: string;
    modelId?: string;
    currentChannelId?: string;
    currentThreadTs?: string;
    currentMessageId?: string | number;
    groupId?: string | null;
    groupChannel?: string | null;
    groupSpace?: string | null;
    replyToMode?: "off" | "first" | "all" | "batched";
    modelHasVision?: boolean;
    requireExplicitMessageTarget?: boolean;
    disableMessageTool?: boolean;
};
export declare function resolveEffectiveToolInventory(params: ResolveEffectiveToolInventoryParams): EffectiveToolInventoryResult;
