/**
 * @license
 * Copyright 2025 Google LLC
 * SPDX-License-Identifier: Apache-2.0
 */
import { Config } from '../config/config.js';
import { BaseDeclarativeTool, type ToolResult, type ToolInvocation } from './tools.js';
import type { MessageBus } from '../confirmation-bus/message-bus.js';
import { type ModifiableDeclarativeTool, type ModifyContext } from './modifiable-tool.js';
/**
 * Parameters for the WriteFile tool
 */
export interface WriteFileToolParams {
    /**
     * The absolute path to the file to write to
     */
    file_path?: string;
    /**
     * Alternative parameter name for file_path (for compatibility)
     * Not shown in schema - internal use only
     */
    absolute_path?: string;
    /**
     * The content to write to the file
     */
    content: string;
    /**
     * Whether the proposed content was modified by the user.
     */
    modified_by_user?: boolean;
    /**
     * Initially proposed content.
     */
    ai_proposed_content?: string;
}
interface GetCorrectedFileContentResult {
    originalContent: string;
    correctedContent: string;
    fileExists: boolean;
    error?: {
        message: string;
        code?: string;
    };
}
/**
 * Gets corrected file content using AI correction services
 */
export declare function getCorrectedFileContent(filePath: string, proposedContent: string, config: Config, _abortSignal: AbortSignal): Promise<GetCorrectedFileContentResult>;
/**
 * Implementation of the WriteFile tool logic
 */
export declare class WriteFileTool extends BaseDeclarativeTool<WriteFileToolParams, ToolResult> implements ModifiableDeclarativeTool<WriteFileToolParams> {
    private readonly config;
    static readonly Name: string;
    constructor(config: Config, messageBus?: MessageBus);
    protected validateToolParamValues(params: WriteFileToolParams): string | null;
    protected createInvocation(params: WriteFileToolParams, messageBus?: MessageBus): ToolInvocation<WriteFileToolParams, ToolResult>;
    getModifyContext(abortSignal: AbortSignal): ModifyContext<WriteFileToolParams>;
}
export {};
