import type { BaseToolHandler } from "../../../../../agentCore/agent_executionEngine/basic_toolLayer/baseTools/baseToolDefinition.js";
import type { BaseToolExecutorPort } from "../../../../../agentCore/agent_executionEngine/basic_toolLayer/baseTools/baseToolExecutorPort.js";
import { type ShellRuntimeObservationOutput, type ShellRuntimeObservationProvider, type ShellRuntimeObservationRequest, type ShellRuntimeObservationResult } from "./core.js";
import { type ShellRuntimeObservationDependencies, type ShellRuntimeObservationPracticeProviderName, type ShellRuntimeObservationProviderPractice } from "./dependencies.js";
export * from "./core.js";
export type ShellRuntimeObservationBestPracticeRequest = ShellRuntimeObservationRequest & {
    executor?: BaseToolExecutorPort;
    preferredProvider?: ShellRuntimeObservationPracticeProviderName;
    provider?: ShellRuntimeObservationProvider;
};
export type ShellRuntimeObservationHandlerInput = Omit<ShellRuntimeObservationBestPracticeRequest, "executor">;
export type ShellRuntimeObservationPracticeSelection = {
    providerName: ShellRuntimeObservationPracticeProviderName;
    practice: ShellRuntimeObservationProviderPractice;
    provider?: ShellRuntimeObservationProvider;
};
export declare const shellRuntimeObservationProviderPractices: readonly [{
    readonly providerName: "anthropic";
    readonly source: {
        readonly kind: "cli";
        readonly label: "Claude Code 2.1.88 BashTool runtime event observation";
        readonly path: "/home/proview/Desktop/three/claude_code_2_1_88/tools/BashTool";
    };
    readonly directCliSupport: true;
    readonly sideEffectPolicy: "runtime-governed";
    readonly notes: readonly ["Claude Code surfaces shell execution progress through runtime-owned tool events.", "Praxis summarizes runtime-provided events without owning stream or session policy."];
    readonly createProvider: ({ provider, executor }: ShellRuntimeObservationDependencies) => ShellRuntimeObservationProvider | undefined;
}, {
    readonly providerName: "openai";
    readonly source: {
        readonly kind: "cli";
        readonly label: "Codex Rust 0.123.0 shell event/result stream boundary";
        readonly path: "/home/proview/Desktop/three/codex_rust_0_123_0/codex-rs/core/src/tools";
    };
    readonly directCliSupport: true;
    readonly sideEffectPolicy: "runtime-governed";
    readonly notes: readonly ["Codex keeps shell output and execution events behind runtime tool plumbing.", "Praxis follows that separation through BaseToolExecutorPort.shell.monitorExecution."];
    readonly createProvider: ({ provider, executor }: ShellRuntimeObservationDependencies) => ShellRuntimeObservationProvider | undefined;
}, {
    readonly providerName: "deepmind";
    readonly source: {
        readonly kind: "cli";
        readonly label: "Gemini CLI 0.39.0 shell event handling";
        readonly path: "/home/proview/Desktop/three/gemini_cli_0_39_0/packages/core/src/tools/shell.ts";
    };
    readonly directCliSupport: true;
    readonly sideEffectPolicy: "runtime-governed";
    readonly notes: readonly ["Gemini CLI contributes shell confirmation and event-result lessons.", "Praxis leaves event ownership in runtime and exposes a normalized observation summary."];
    readonly createProvider: ({ provider, executor }: ShellRuntimeObservationDependencies) => ShellRuntimeObservationProvider | undefined;
}];
export declare const shellRuntimeObservationBestPracticeDescriptor: {
    readonly toolId: "shell.runtimeObservation";
    readonly bestPractice: "runtime-execEngine-shellExecution-observeRuntimeEvents";
    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 selectShellRuntimeObservationPractice(dependencies?: ShellRuntimeObservationDependencies & {
    preferredProvider?: ShellRuntimeObservationPracticeProviderName;
}): ShellRuntimeObservationPracticeSelection;
export declare function executeShellRuntimeObservation(request?: ShellRuntimeObservationBestPracticeRequest): Promise<ShellRuntimeObservationResult>;
export declare const shellRuntimeObservationBaseToolDefinition: import("../../../../../agentCore/agent_executionEngine/basic_toolLayer/baseTools/baseToolDefinition.js").BaseToolDefinition<ShellRuntimeObservationHandlerInput, ShellRuntimeObservationOutput>;
export declare const shellRuntimeObservationHandler: BaseToolHandler<ShellRuntimeObservationHandlerInput, ShellRuntimeObservationOutput>;
