import type { TikTokClientOptions } from "../clients/types.ts"; import { createTikTokAccountTools } from "./account.ts"; import { createTikTokCommentTools } from "./comments.ts"; import { createTikTokContentTools } from "./content.ts"; import { createTikTokMessagingTools } from "./messaging.ts"; type ToolCategory = "content" | "comments" | "account" | "messaging"; type ToolsForCategory = C extends "content" ? ReturnType : C extends "comments" ? ReturnType : C extends "account" ? ReturnType : C extends "messaging" ? ReturnType : never; type MergeTools = Categories extends readonly [ infer Head extends ToolCategory, ...infer Tail extends readonly ToolCategory[] ] ? ToolsForCategory & MergeTools : {}; export interface CreateTikTokToolsOptions extends TikTokClientOptions { include?: C; } /** * Create AI tool definitions for TikTok Business API operations. * Compatible with Vercel AI SDK's `tool()` format — works with any LLM provider. * * The return type reflects exactly which tool categories are included: * ```ts * const tools = createTikTokTools({ accessToken, businessId, include: ["content"] as const }); * tools.tt_publish_video // ✓ exists * tools.tt_comment_list // ✗ type error — not included * ``` */ export declare function createTikTokTools(opts: CreateTikTokToolsOptions): C extends readonly ToolCategory[] ? MergeTools : MergeTools; export { createTikTokAccountTools } from "./account.ts"; export { createTikTokCommentTools } from "./comments.ts"; export { createTikTokContentTools } from "./content.ts"; export type { ToolCategory } from "./filter.ts"; export { filterTools, filterToolsByName, getAvailableCategories, getToolCategories, limitTools, } from "./filter.ts"; export { createTikTokMessagingTools } from "./messaging.ts"; export type { ToolCallContext, ToolMiddleware } from "./middleware.ts"; export { withMiddleware } from "./middleware.ts"; export type { RouterOptions } from "./router.ts"; export { createRouter } from "./router.ts"; //# sourceMappingURL=index.d.ts.map