import type { SKYKOIConfig } from "../config/config.js"; import type { GatewayMessageChannel } from "../utils/message-channel.js"; import type { AnyKoiTool } from "./tools/common.js"; export declare function createSKYKOITools(options?: { sandboxBrowserBridgeUrl?: string; allowHostBrowserControl?: boolean; koiSessionKey?: string; koiChannel?: GatewayMessageChannel; koiAccountId?: string; /** Delivery target (e.g. telegram:group:123:topic:456) for topic/thread routing. */ koiTo?: string; /** Thread/topic identifier for routing replies to the originating thread. */ koiThreadId?: string | number; /** Group id for channel-level tool policy inheritance. */ koiGroupId?: string | null; /** Group channel label for channel-level tool policy inheritance. */ koiGroupChannel?: string | null; /** Group space label for channel-level tool policy inheritance. */ koiGroupSpace?: string | null; koiDir?: string; sandboxRoot?: string; workspaceDir?: string; sandboxed?: boolean; config?: SKYKOIConfig; pluginToolAllowlist?: string[]; /** Current channel ID for auto-threading (Slack). */ currentChannelId?: string; /** Current thread timestamp for auto-threading (Slack). */ currentThreadTs?: string; /** Reply-to mode for Slack auto-threading. */ replyToMode?: "off" | "first" | "all"; /** Mutable ref to track if a reply was sent (for "first" mode). */ hasRepliedRef?: { value: boolean; }; /** If true, the model has native vision capability */ modelHasVision?: boolean; /** Explicit koi ID override for cron/hook sessions. */ requesterKoiIdOverride?: string; /** Require explicit message targets (no implicit last-route sends). */ requireExplicitMessageTarget?: boolean; /** If true, omit the message tool from the tool list. */ disableMessageTool?: boolean; }): AnyKoiTool[];