export { type BashOperations, type BashSpawnContext, type BashSpawnHook, type BashToolDetails, type BashToolInput, type BashToolOptions, createBashTool, createBashToolDefinition, createLocalBashOperations, } from "./bash.ts";
export { createEditTool, createEditToolDefinition, type EditOperations, type EditToolDetails, type EditToolInput, type EditToolOptions, } from "./edit.ts";
export { withFileMutationQueue } from "./file-mutation-queue.ts";
export { createFindTool, createFindToolDefinition, type FindOperations, type FindToolDetails, type FindToolInput, type FindToolOptions, } from "./find.ts";
export { createSearchTool, createSearchToolDefinition, type SearchToolDetails, type SearchToolInput, type SearchToolOptions, } from "./search.ts";
export { createLsTool, createLsToolDefinition, type LsOperations, type LsToolDetails, type LsToolInput, type LsToolOptions, } from "./ls.ts";
export { createReadTool, createReadToolDefinition, type ReadOperations, type ReadToolDetails, type ReadToolInput, type ReadToolOptions, } from "./read.ts";
export { DEFAULT_MAX_BYTES, DEFAULT_MAX_LINES, formatSize, type TruncationOptions, type TruncationResult, truncateHead, truncateLine, truncateTail, } from "./truncate.ts";
export { createWriteTool, createWriteToolDefinition, type WriteOperations, type WriteToolInput, type WriteToolOptions, } from "./write.ts";
export { createAskUserQuestionToolDefinition } from "./ask-user-question/index.ts";
export { STRUCTURED_OUTPUT_TOOL_NAME, createStructuredOutputCapture, createStructuredOutputTool, type JsonObject, type JsonPrimitive, type JsonValue, type StructuredOutputCapture, type StructuredOutputFileCapture, type StructuredOutputToolOptions, } from "./structured-output.ts";
export { createTodoToolDefinition } from "./todos.ts";
import type { AgentTool } from "@earendil-works/pi-agent-core";
import type { TSchema } from "typebox";
import type { ToolDefinition } from "../extensions/types.ts";
import { type HashlineSnapshotStore } from "./hashline.ts";
import { type BashToolOptions } from "./bash.ts";
import { type EditToolOptions } from "./edit.ts";
import { type FindToolOptions } from "./find.ts";
import { type LsToolOptions } from "./ls.ts";
import { type SearchToolOptions } from "./search.ts";
import { type ReadToolOptions } from "./read.ts";
import { type WriteToolOptions } from "./write.ts";
export type Tool = AgentTool<TSchema, unknown>;
export type ToolDef = ToolDefinition<TSchema, unknown>;
export type ToolName = "read" | "bash" | "edit" | "write" | "find" | "search" | "ls" | "ask_user_question" | "todo";
export declare const allToolNames: Set<ToolName>;
export declare const defaultToolNames: readonly ToolName[];
export interface ToolsOptions {
    read?: ReadToolOptions;
    bash?: BashToolOptions;
    write?: WriteToolOptions;
    edit?: EditToolOptions;
    find?: FindToolOptions;
    search?: SearchToolOptions;
    ls?: LsToolOptions;
    hashlineStore?: HashlineSnapshotStore;
}
export declare function createToolDefinition(toolName: ToolName, cwd: string, options?: ToolsOptions): ToolDef;
export declare function createTool(toolName: ToolName, cwd: string, options?: ToolsOptions): Tool;
export declare function createCodingToolDefinitions(cwd: string, options?: ToolsOptions): ToolDef[];
export declare function createReadOnlyToolDefinitions(cwd: string, options?: ToolsOptions): ToolDef[];
export declare function createAllToolDefinitions(cwd: string, options?: ToolsOptions): Record<ToolName, ToolDef>;
export declare function createCodingTools(cwd: string, options?: ToolsOptions): Tool[];
export declare function createReadOnlyTools(cwd: string, options?: ToolsOptions): Tool[];
export declare function createAllTools(cwd: string, options?: ToolsOptions): Record<ToolName, Tool>;
//# sourceMappingURL=index.d.ts.map