import type { BaseToolHandler } from "../../../../../agentCore/agent_executionEngine/basic_toolLayer/baseTools/baseToolDefinition.js";
import type { ShellToolResult } from "../../shellExecution/shell.commandExecution/core.js";
import { type ShellSessionManagementOutput, type ShellSessionManagementRequest } from "./core.js";
import { type ShellSessionManagementDependencies, type ShellSessionManagementPracticeProviderName, type ShellSessionManagementProvider, type ShellSessionManagementProviderPractice } from "./dependencies.js";
export * from "./core.js";
export type ShellSessionManagementBestPracticeRequest = ShellSessionManagementRequest & {
    executor?: ShellSessionManagementDependencies["executor"];
    provider?: ShellSessionManagementProvider;
    preferredProvider?: ShellSessionManagementPracticeProviderName;
};
export type ShellSessionManagementHandlerInput = Omit<ShellSessionManagementBestPracticeRequest, "executor" | "provider">;
export type ShellSessionManagementPracticeSelection = {
    providerName: ShellSessionManagementPracticeProviderName;
    practice: ShellSessionManagementProviderPractice;
    provider?: ShellSessionManagementProvider;
};
export declare const shellSessionManagementProviderPractices: readonly [{
    readonly providerName: "anthropic";
    readonly source: {
        readonly kind: "cli";
        readonly label: "Claude Code shell session management boundary";
    };
    readonly directCliSupport: true;
    readonly sideEffectPolicy: "runtime-governed";
    readonly notes: readonly ["Shell sessions are runtime-owned handles, not baseTool-owned state.", "Praxis exposes session-management contracts and audit metadata only."];
    readonly createProvider: ({ provider, executor }: ShellSessionManagementDependencies) => ShellSessionManagementProvider | undefined;
}, {
    readonly providerName: "openai";
    readonly source: {
        readonly kind: "cli";
        readonly label: "Codex shell session runtime boundary";
    };
    readonly directCliSupport: true;
    readonly sideEffectPolicy: "runtime-governed";
    readonly notes: readonly ["Codex keeps shell session state in the host runtime.", "Praxis baseTools require guard plus provider before creating, attaching, detaching, or closing sessions."];
    readonly createProvider: ({ provider, executor }: ShellSessionManagementDependencies) => ShellSessionManagementProvider | undefined;
}, {
    readonly providerName: "deepmind";
    readonly source: {
        readonly kind: "cli";
        readonly label: "Gemini CLI shell session management boundary";
    };
    readonly directCliSupport: true;
    readonly sideEffectPolicy: "runtime-governed";
    readonly notes: readonly ["Runtime owns shell session state and attachment policy.", "Praxis mirrors that boundary with provider-only real execution."];
    readonly createProvider: ({ provider, executor }: ShellSessionManagementDependencies) => ShellSessionManagementProvider | undefined;
}];
export declare const shellSessionManagementBestPracticeDescriptor: {
    readonly toolId: "shell.shellSessionManagement";
    readonly bestPractice: "runtime-governed-shell-session-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 selectShellSessionManagementPractice(dependencies?: ShellSessionManagementDependencies & {
    preferredProvider?: ShellSessionManagementPracticeProviderName;
}): ShellSessionManagementPracticeSelection;
export declare function executeShellSessionManagement(request?: ShellSessionManagementBestPracticeRequest): Promise<ShellToolResult<ShellSessionManagementOutput, string>>;
export declare const shellSessionManagementBaseToolDefinition: import("../../../../../agentCore/agent_executionEngine/basic_toolLayer/baseTools/baseToolDefinition.js").BaseToolDefinition<ShellSessionManagementHandlerInput, ShellSessionManagementOutput>;
export declare const shellSessionManagementHandler: BaseToolHandler<ShellSessionManagementHandlerInput, ShellSessionManagementOutput>;
