import { z } from 'zod'; import { StructuredTool } from '@langchain/core/tools'; import type { KanbanSDK } from './types'; export declare class ListCommentsTool extends StructuredTool { private sdk; name: string; description: string; schema: z.ZodObject<{ cardId: z.ZodString; boardId: z.ZodOptional; }, "strip", z.ZodTypeAny, { cardId: string; boardId?: string | undefined; }, { cardId: string; boardId?: string | undefined; }>; constructor(sdk: KanbanSDK); _call(input: z.infer): Promise; } export declare class AddCommentTool extends StructuredTool { private sdk; name: string; description: string; schema: z.ZodObject<{ cardId: z.ZodString; author: z.ZodString; content: z.ZodString; boardId: z.ZodOptional; }, "strip", z.ZodTypeAny, { cardId: string; content: string; author: string; boardId?: string | undefined; }, { cardId: string; content: string; author: string; boardId?: string | undefined; }>; constructor(sdk: KanbanSDK); _call(input: z.infer): Promise; } export declare class UpdateCommentTool extends StructuredTool { private sdk; name: string; description: string; schema: z.ZodObject<{ cardId: z.ZodString; commentId: z.ZodString; content: z.ZodString; boardId: z.ZodOptional; }, "strip", z.ZodTypeAny, { cardId: string; content: string; commentId: string; boardId?: string | undefined; }, { cardId: string; content: string; commentId: string; boardId?: string | undefined; }>; constructor(sdk: KanbanSDK); _call(input: z.infer): Promise; } export declare class DeleteCommentTool extends StructuredTool { private sdk; name: string; description: string; schema: z.ZodObject<{ cardId: z.ZodString; commentId: z.ZodString; boardId: z.ZodOptional; }, "strip", z.ZodTypeAny, { cardId: string; commentId: string; boardId?: string | undefined; }, { cardId: string; commentId: string; boardId?: string | undefined; }>; constructor(sdk: KanbanSDK); _call(input: z.infer): Promise; } /** * Stream a comment onto a kanban card from an async text source. * * This tool is designed for AI agent workflows where comment text is generated * incrementally (e.g. from an LLM textStream). The caller supplies an * `AsyncIterable` and optional callbacks for live progress. * * Because LangChain tool invocations are text-in/text-out, this tool accepts * a plain `content` string **or** callers can use {@link streamCommentDirect} * for full streaming control. */ export declare class StreamCommentTool extends StructuredTool { private sdk; name: string; description: string; schema: z.ZodObject<{ cardId: z.ZodString; author: z.ZodString; content: z.ZodString; boardId: z.ZodOptional; }, "strip", z.ZodTypeAny, { cardId: string; content: string; author: string; boardId?: string | undefined; }, { cardId: string; content: string; author: string; boardId?: string | undefined; }>; constructor(sdk: KanbanSDK); _call(input: z.infer): Promise; } /** * Directly stream a comment using an AsyncIterable — not invoked via LangChain * tool calling but useful when composing LangGraph nodes that have access to * the adapter. */ export declare function streamCommentDirect(sdk: KanbanSDK, opts: { cardId: string; author: string; stream: AsyncIterable; boardId?: string; onStart?: (commentId: string, author: string, created: string) => void; onChunk?: (commentId: string, chunk: string) => void; }): Promise; export declare function createCommentTools(sdk: KanbanSDK): StructuredTool[];