/**
 * @license
 * Copyright 2025 Google LLC
 * SPDX-License-Identifier: Apache-2.0
 */
import { BaseDeclarativeTool, BaseToolInvocation, type ToolEditConfirmationDetails, type ToolResult } from './tools.js';
import type { MessageBus } from '../confirmation-bus/message-bus.js';
import { type ModifiableDeclarativeTool, type ModifyContext } from './modifiable-tool.js';
export declare const LLXPRT_CONFIG_DIR = ".llxprt";
export declare const GEMINI_DIR = ".llxprt";
export declare const DEFAULT_CONTEXT_FILENAME = "LLXPRT.md";
export declare const MEMORY_SECTION_HEADER = "## LLxprt Code Added Memories";
export declare function setLlxprtMdFilename(newFilename: string | string[]): void;
export declare function getCurrentLlxprtMdFilename(): string;
export declare function getAllLlxprtMdFilenames(): string[];
interface SaveMemoryParams {
    fact: string;
    scope?: 'global' | 'project';
    modified_by_user?: boolean;
    modified_content?: string;
}
declare class MemoryToolInvocation extends BaseToolInvocation<SaveMemoryParams, ToolResult> {
    private static readonly allowlist;
    private workingDir?;
    constructor(params: SaveMemoryParams, messageBus?: MessageBus);
    setWorkingDir(workingDir: string): void;
    getMemoryFilePath(): string;
    readMemoryFileContent(): Promise<string>;
    getToolName(): string;
    getDescription(): string;
    shouldConfirmExecute(_abortSignal: AbortSignal): Promise<ToolEditConfirmationDetails | false>;
    execute(_signal: AbortSignal): Promise<ToolResult>;
}
export declare class MemoryTool extends BaseDeclarativeTool<SaveMemoryParams, ToolResult> implements ModifiableDeclarativeTool<SaveMemoryParams> {
    private config?;
    static readonly Name: string;
    constructor(config?: {
        getWorkingDir: () => string;
    } | undefined, messageBus?: MessageBus);
    protected validateToolParamValues(params: SaveMemoryParams): string | null;
    protected createInvocation(params: SaveMemoryParams, messageBus?: MessageBus): MemoryToolInvocation;
    static performAddMemoryEntry(text: string, memoryFilePath: string, fsAdapter: {
        readFile: (path: string, encoding: 'utf-8') => Promise<string>;
        writeFile: (path: string, data: string, encoding: 'utf-8') => Promise<void>;
        mkdir: (path: string, options: {
            recursive: boolean;
        }) => Promise<string | undefined>;
    }): Promise<void>;
    getModifyContext(_abortSignal: AbortSignal): ModifyContext<SaveMemoryParams>;
}
export {};
