import type { BaseToolDefinition, BaseToolDependencyDeclaration, BaseToolHandler, BaseToolInvokeRequest, BaseToolInvokeResult, BaseToolRiskLevel, BaseToolSchemaLike } from "../../../../agentCore/agent_executionEngine/basic_toolLayer/baseTools/baseToolDefinition.js";
export type GitBasePracticeProviderName = "anthropic" | "openai" | "deepmind" | "praxis-native";
export type GitBasePracticeSource = {
    kind: "cli" | "agent-sdk" | "api-sdk" | "praxis-native";
    label: string;
    path?: string;
};
export type GitBasePracticeSelection<Name extends string = GitBasePracticeProviderName> = {
    providerName: Name;
    sourceLabel: string;
    sourceKind?: string;
    sourcePath?: string;
    directCliSupport: boolean;
    sideEffectPolicy?: string;
    notes?: readonly string[];
};
export type GitToolAuditEvent = {
    type: string;
    toolId: string;
    invocationId: string;
    dryRun: boolean;
    repositoryPath?: string;
    metadata?: Readonly<Record<string, unknown>>;
};
export type GitToolFailure<Code extends string = string> = {
    ok: false;
    toolId: string;
    error: {
        code: Code;
        message: string;
        boundary: string;
        safeForRuntimeInspection: true;
        internalDetailExposed: false;
    };
    audit: readonly GitToolAuditEvent[];
    events: readonly string[];
};
export type GitToolSuccess<Output> = {
    ok: true;
    toolId: string;
    output: Output;
    audit: readonly GitToolAuditEvent[];
    events: readonly string[];
};
export type GitToolResult<Output, Code extends string = string> = GitToolSuccess<Output> | GitToolFailure<Code>;
export type GitBaseToolDefinitionOptions<Input, Output> = {
    toolId: string;
    title: string;
    description: string;
    summary: string;
    storageGroup: string;
    riskLevel?: BaseToolRiskLevel;
    permissionHints: readonly string[];
    dependencies: readonly BaseToolDependencyDeclaration[];
    inputSchema?: BaseToolSchemaLike;
    outputSchema?: BaseToolSchemaLike;
    storagePolicy?: BaseToolDefinition["storagePolicy"];
    metadata?: Readonly<Record<string, unknown>>;
};
export declare function gitBaseToolSkillDocPath(toolId: string, storageGroup: string): string;
export declare function gitBaseToolSourcePath(toolId: string, storageGroup: string): string;
export declare function gitBaseToolStoragePracticePath(toolId: string, storageGroup: string): string;
export declare function jsonSchema(name: string, schema: unknown): BaseToolSchemaLike;
export declare function createGitBaseToolDefinition<Input, Output>(options: GitBaseToolDefinitionOptions<Input, Output>): BaseToolDefinition<Input, Output>;
export declare function buildGitBasePracticeAuditMetadata(selection: GitBasePracticeSelection): Readonly<Record<string, unknown>>;
export declare function adaptGitToolResultToInvokeResult<Output, Code extends string = string>(result: GitToolResult<Output, Code>): BaseToolInvokeResult<Output>;
export declare function createGitBaseCoreHandler<Input, Output, Code extends string = string>(definition: BaseToolDefinition<Input, Output>, invokeCore: (request: BaseToolInvokeRequest<Input>) => Promise<GitToolResult<Output, Code>>): BaseToolHandler<Input, Output>;
export declare function injectRuntimeInvocationMetadata(metadata: Readonly<Record<string, unknown>> | undefined, auditMetadata: Readonly<Record<string, unknown>> | undefined, request: Pick<BaseToolInvokeRequest, "runtimeId" | "sessionId" | "toolCallId">): Readonly<Record<string, unknown>>;
