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 { executeGitCloneRepository as executeGitCloneRepositoryCore, gitCloneRepositoryDescriptor, parseGitCloneRepositoryResult, planGitCloneRepository, planGitRepositoryClone, type GitCloneRepositoryOutput, type GitCloneRepositoryProvider, type GitCloneRepositoryRequest, type GitCloneRepositoryResult } from "./core.js";
import { type GitCloneRepositoryDependencies, type GitCloneRepositoryPracticeProviderName, type GitCloneRepositoryProviderPractice } from "./dependencies.js";
export * from "./core.js";
export type GitCloneRepositoryBestPracticeRequest = GitCloneRepositoryRequest & {
    executor?: BaseToolExecutorPort;
    preferredProvider?: GitCloneRepositoryPracticeProviderName;
};
export type GitCloneRepositoryHandlerInput = Omit<GitCloneRepositoryBestPracticeRequest, "executor">;
export type GitCloneRepositoryPracticeSelection = {
    providerName: GitCloneRepositoryPracticeProviderName;
    practice: GitCloneRepositoryProviderPractice;
    provider?: GitCloneRepositoryProvider;
};
export declare const gitCloneRepositoryProviderPractices: readonly [GitCloneRepositoryProviderPractice, GitCloneRepositoryProviderPractice, GitCloneRepositoryProviderPractice];
export declare const gitCloneRepositoryBestPracticeDescriptor: {
    readonly toolId: "git.cloneRepository";
    readonly bestPractice: "runtime-gitExecutor-clone-repository-remote-network";
    readonly sourcePriority: readonly ["cli", "agent-sdk", "api-sdk", "praxis-native"];
    readonly providerOrder: readonly ["anthropic", "openai", "deepmind"];
    readonly dependencies: ({
        dependencyId: string;
        kind: "runtime";
        required: true;
        description: string;
    } | {
        dependencyId: string;
        kind: "permission";
        required: true;
        description: string;
    } | {
        dependencyId: string;
        kind: "binary";
        required: true;
        description: string;
    })[];
};
export declare function selectGitCloneRepositoryPractice(dependencies?: GitCloneRepositoryDependencies & {
    preferredProvider?: GitCloneRepositoryPracticeProviderName;
}): GitCloneRepositoryPracticeSelection;
export declare function executeGitCloneRepository(request?: GitCloneRepositoryBestPracticeRequest): ReturnType<typeof executeGitCloneRepositoryCore>;
export declare const gitCloneRepositoryBaseToolDefinition: import("../../../../../agentCore/agent_executionEngine/basic_toolLayer/baseTools/baseToolDefinition.js").BaseToolDefinition<GitCloneRepositoryHandlerInput, GitCloneRepositoryOutput>;
export declare const gitCloneRepositoryHandler: BaseToolHandler<GitCloneRepositoryHandlerInput, GitCloneRepositoryOutput>;
export type { GitCloneRepositoryResult };
export { gitCloneRepositoryDescriptor, parseGitCloneRepositoryResult, planGitCloneRepository, planGitRepositoryClone };
