import type { BaseToolHandler } from "../../../../../agentCore/agent_executionEngine/basic_toolLayer/baseTools/baseToolDefinition.js";
import type { ShellToolResult } from "../../shellExecution/shell.commandExecution/core.js";
import { type ShellProcessManagementOutput, type ShellProcessManagementRequest } from "./core.js";
import { type ShellProcessManagementDependencies, type ShellProcessManagementPracticeProviderName, type ShellProcessManagementProvider, type ShellProcessManagementProviderPractice } from "./dependencies.js";
export * from "./core.js";
export type ShellProcessManagementBestPracticeRequest = ShellProcessManagementRequest & {
    executor?: ShellProcessManagementDependencies["executor"];
    provider?: ShellProcessManagementProvider;
    preferredProvider?: ShellProcessManagementPracticeProviderName;
};
export type ShellProcessManagementHandlerInput = Omit<ShellProcessManagementBestPracticeRequest, "executor" | "provider">;
export type ShellProcessManagementPracticeSelection = {
    providerName: ShellProcessManagementPracticeProviderName;
    practice: ShellProcessManagementProviderPractice;
    provider?: ShellProcessManagementProvider;
};
export declare const shellProcessManagementProviderPractices: readonly [{
    readonly providerName: "anthropic";
    readonly source: {
        readonly kind: "cli";
        readonly label: "Claude Code shell process management boundary";
    };
    readonly directCliSupport: true;
    readonly sideEffectPolicy: "runtime-governed";
    readonly notes: readonly ["Shell process handles and signals stay in the host runtime.", "Praxis baseTools expose process-management contracts without owning process policy."];
    readonly createProvider: ({ provider, executor }: ShellProcessManagementDependencies) => ShellProcessManagementProvider | undefined;
}, {
    readonly providerName: "openai";
    readonly source: {
        readonly kind: "cli";
        readonly label: "Codex shell process runtime boundary";
    };
    readonly directCliSupport: true;
    readonly sideEffectPolicy: "runtime-governed";
    readonly notes: readonly ["Codex keeps process signaling and lifecycle effects in the host runtime.", "Praxis requires a runtime guard and provider before real process management dispatch."];
    readonly createProvider: ({ provider, executor }: ShellProcessManagementDependencies) => ShellProcessManagementProvider | undefined;
}, {
    readonly providerName: "deepmind";
    readonly source: {
        readonly kind: "cli";
        readonly label: "Gemini CLI process management boundary";
    };
    readonly directCliSupport: true;
    readonly sideEffectPolicy: "runtime-governed";
    readonly notes: readonly ["Runtime mediates process inspection and mutation.", "Praxis baseTools preserve the same provider-owned side-effect boundary."];
    readonly createProvider: ({ provider, executor }: ShellProcessManagementDependencies) => ShellProcessManagementProvider | undefined;
}];
export declare const shellProcessManagementBestPracticeDescriptor: {
    readonly toolId: "shell.shellProcessManagement";
    readonly bestPractice: "runtime-governed-shell-process-management";
    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;
    })[];
};
export declare function selectShellProcessManagementPractice(dependencies?: ShellProcessManagementDependencies & {
    preferredProvider?: ShellProcessManagementPracticeProviderName;
}): ShellProcessManagementPracticeSelection;
export declare function executeShellProcessManagement(request?: ShellProcessManagementBestPracticeRequest): Promise<ShellToolResult<ShellProcessManagementOutput, string>>;
export declare const shellProcessManagementBaseToolDefinition: import("../../../../../agentCore/agent_executionEngine/basic_toolLayer/baseTools/baseToolDefinition.js").BaseToolDefinition<ShellProcessManagementHandlerInput, ShellProcessManagementOutput>;
export declare const shellProcessManagementHandler: BaseToolHandler<ShellProcessManagementHandlerInput, ShellProcessManagementOutput>;
