import { ToolScopeConfig } from "../../db/manage/scope-definitions.js";
import { AgentsRunDatabaseClient } from "../../db/runtime/runtime-client.js";
import { McpTool, ToolSelect } from "../../types/entities.js";

//#region src/data-access/runtime/slack-work-app-mcp.d.ts
type SlackMcpToolAccessConfig = {
  channelAccessMode: 'all' | 'selected';
  dmEnabled: boolean;
  channelIds: string[];
};
declare const getSlackMcpToolAccessConfig: (db: AgentsRunDatabaseClient) => (scope: ToolScopeConfig) => Promise<SlackMcpToolAccessConfig>;
declare const setSlackMcpToolAccessConfig: (db: AgentsRunDatabaseClient) => (params: {
  toolId: string;
  tenantId: string;
  projectId: string;
  channelAccessMode: "all" | "selected";
  dmEnabled: boolean;
  channelIds: string[];
}) => Promise<void>;
declare const updateSlackMcpToolAccessChannelIds: (db: AgentsRunDatabaseClient) => (scope: ToolScopeConfig, channelIds: string[]) => Promise<void>;
declare const deleteSlackMcpToolAccessConfig: (db: AgentsRunDatabaseClient) => (scope: ToolScopeConfig) => Promise<boolean>;
declare const deleteAllSlackMcpToolAccessConfigsByTenant: (db: AgentsRunDatabaseClient) => (tenantId: string) => Promise<number>;
declare const isSlackWorkAppTool: (tool: ToolSelect | McpTool) => boolean | undefined;
declare const resolveSlackUserContext: (db: AgentsRunDatabaseClient) => (inkeepUserId: string) => Promise<string | undefined>;
//#endregion
export { SlackMcpToolAccessConfig, deleteAllSlackMcpToolAccessConfigsByTenant, deleteSlackMcpToolAccessConfig, getSlackMcpToolAccessConfig, isSlackWorkAppTool, resolveSlackUserContext, setSlackMcpToolAccessConfig, updateSlackMcpToolAccessChannelIds };