import type { BaseToolExecutorPort } from "../../../../../agentCore/agent_executionEngine/basic_toolLayer/baseTools/baseToolExecutorPort.js";
import type { BaseToolHandler } from "../../../../../agentCore/agent_executionEngine/basic_toolLayer/baseTools/baseToolDefinition.js";
import { type CodeReplaceFileDependencies, type CodeReplaceFilePracticeProviderName, type CodeReplaceFileProviderPractice } from "./dependencies.js";
import { codeReplaceFileDescriptor, executeCodeReplaceFile as executeCodeReplaceFileCore, planCodeReplaceFile, type CodeReplaceFileOutput, type CodeReplaceFileProvider, type CodeReplaceFileRequest, type CodeReplaceFileResult } from "./core.js";
export * from "./core.js";
export type CodeReplaceFileBestPracticeRequest = CodeReplaceFileRequest & {
    executor?: BaseToolExecutorPort;
    preferredProvider?: CodeReplaceFilePracticeProviderName;
};
export type CodeReplaceFileHandlerInput = Omit<CodeReplaceFileBestPracticeRequest, "executor">;
export type CodeReplaceFilePracticeSelection = {
    providerName: CodeReplaceFilePracticeProviderName;
    practice: CodeReplaceFileProviderPractice;
    provider?: CodeReplaceFileProvider;
};
export declare const codeReplaceFileProviderPractices: readonly [{
    readonly providerName: "anthropic";
    readonly source: {
        readonly kind: "cli";
        readonly label: "Claude Code Edit/Write tool practice";
        readonly path: "/home/proview/Desktop/three/claude_code_2_1_88/tools";
    };
    readonly directCliSupport: true;
    readonly sideEffectPolicy: "runtime-governed";
    readonly notes: readonly ["Whole-file replacement must remain permissioned, scoped, and auditable.", "Praxis keeps replacement semantics in storage core and delegates only text IO to runtime."];
    readonly createProvider: ({ provider, executor }: CodeReplaceFileDependencies) => CodeReplaceFileProvider | undefined;
}, {
    readonly providerName: "openai";
    readonly source: {
        readonly kind: "cli";
        readonly label: "Codex apply_patch/fs_api write-boundary practice";
        readonly path: "/home/proview/Desktop/three/codex";
    };
    readonly directCliSupport: true;
    readonly sideEffectPolicy: "runtime-governed";
    readonly notes: readonly ["Codex-style edits keep patch intent explicit and avoid hidden shell redirection.", "Praxis uses expected hash checks when the caller supplies one."];
    readonly createProvider: ({ provider, executor }: CodeReplaceFileDependencies) => CodeReplaceFileProvider | undefined;
}, {
    readonly providerName: "deepmind";
    readonly source: {
        readonly kind: "cli";
        readonly label: "Gemini CLI write-file/edit practice";
        readonly path: "/home/proview/Desktop/three/gemini_cli_0_39_0/packages/core/src/tools";
    };
    readonly directCliSupport: true;
    readonly sideEffectPolicy: "runtime-governed";
    readonly notes: readonly ["Write-style tools should preserve path scope and caller-visible edit intent.", "Praxis maps that practice to storage-owned validation and runtime-owned text writes."];
    readonly createProvider: ({ provider, executor }: CodeReplaceFileDependencies) => CodeReplaceFileProvider | undefined;
}];
export declare const codeReplaceFileBestPracticeDescriptor: {
    readonly toolId: "code.replaceFile";
    readonly bestPractice: "storage-owned-code-replace-file-with-runtime-filesystem-support";
    readonly sourcePriority: readonly ["cli", "agent-sdk", "api-sdk", "praxis-native"];
    readonly providerOrder: readonly ["anthropic", "openai", "deepmind"];
    readonly dependencies: readonly import("../../../../../agentCore/agent_executionEngine/basic_toolLayer/baseTools/baseToolDefinition.js").BaseToolDependencyDeclaration[];
};
export declare function selectCodeReplaceFilePractice(dependencies?: CodeReplaceFileDependencies & {
    preferredProvider?: CodeReplaceFilePracticeProviderName;
}): CodeReplaceFilePracticeSelection;
export declare function executeCodeReplaceFile(request?: CodeReplaceFileBestPracticeRequest): ReturnType<typeof executeCodeReplaceFileCore>;
export declare const codeReplaceFileBaseToolDefinition: import("../../../../../agentCore/agent_executionEngine/basic_toolLayer/baseTools/baseToolDefinition.js").BaseToolDefinition<CodeReplaceFileHandlerInput, CodeReplaceFileOutput>;
export declare const codeReplaceFileHandler: BaseToolHandler<CodeReplaceFileHandlerInput, CodeReplaceFileOutput>;
export type { CodeReplaceFileResult };
export { codeReplaceFileDescriptor, planCodeReplaceFile };
