import type { BaseToolHandler } from "../../../../../agentCore/agent_executionEngine/basic_toolLayer/baseTools/baseToolDefinition.js";
import { inspectLspDiagnostics as inspectLspDiagnosticsCore, type LspInspectDiagnosticsRequest } from "./core.js";
import { type LspLocateDefinitionRuntimeOptions, type LspRuntimeDiagnostic } from "../_shared/runtime.js";
import { type LspInspectDiagnosticsPracticeProviderName } from "./dependencies.js";
export * from "./core.js";
export type LspInspectDiagnosticsRuntimeOutput = {
    kind: "agentCore.basicTool.lsp.inspectDiagnostics";
    target: {
        filePath: string;
        languageId?: string;
    };
    diagnostics: readonly LspRuntimeDiagnostic[];
    dryRun: boolean;
    providerCalled: boolean;
    permissionsRequired: readonly ["workspace:read", "lsp:read"];
    unsafeSideEffects: false;
};
export type LspInspectDiagnosticsPreviewOutput = {
    kind: "agentCore.basicTool.lsp.inspectDiagnostics.preview";
    preview: ReturnType<typeof inspectLspDiagnosticsCore> extends infer Result ? Result extends {
        ok: true;
        snapshot: infer Snapshot;
    } ? Snapshot : never : never;
    dryRun: true;
    providerCalled: false;
    unsafeSideEffects: false;
};
export type LspInspectDiagnosticsBestPracticeOutput = LspInspectDiagnosticsRuntimeOutput | LspInspectDiagnosticsPreviewOutput;
export type LspInspectDiagnosticsBestPracticeRequest = LspInspectDiagnosticsRequest & {
    runtime?: LspLocateDefinitionRuntimeOptions & {
        waitMs?: number;
    };
    preferredProvider?: LspInspectDiagnosticsPracticeProviderName;
};
export declare const lspInspectDiagnosticsProviderPractices: readonly [{
    readonly providerName: "anthropic";
    readonly source: "Claude Code LSPTool practice informs code.lsp_inspectDiagnostics; Praxis executes through the shared LSP runtime.";
    readonly directCliSupport: true;
    readonly sideEffectPolicy: "read-only";
}, {
    readonly providerName: "openai";
    readonly source: "Codex CLI tool runtime boundary practice informs code.lsp_inspectDiagnostics; Praxis executes through the shared LSP runtime.";
    readonly directCliSupport: true;
    readonly sideEffectPolicy: "read-only";
}, {
    readonly providerName: "deepmind";
    readonly source: "Gemini CLI tool registry practice informs code.lsp_inspectDiagnostics; Praxis executes through the shared LSP runtime.";
    readonly directCliSupport: true;
    readonly sideEffectPolicy: "read-only";
}];
export declare const lspInspectDiagnosticsBestPracticeDescriptor: {
    readonly toolId: "code.lsp_inspectDiagnostics";
    readonly bestPractice: "anthropic-host-executor-or-shared-stdio-lsp-runtime";
    readonly sourcePriority: readonly ["cli", "agent-sdk", "api-sdk", "praxis-native"];
    readonly providerPractices: readonly [{
        readonly providerName: "anthropic";
        readonly source: "Claude Code LSPTool practice informs code.lsp_inspectDiagnostics; Praxis executes through the shared LSP runtime.";
        readonly directCliSupport: true;
        readonly sideEffectPolicy: "read-only";
    }, {
        readonly providerName: "openai";
        readonly source: "Codex CLI tool runtime boundary practice informs code.lsp_inspectDiagnostics; Praxis executes through the shared LSP runtime.";
        readonly directCliSupport: true;
        readonly sideEffectPolicy: "read-only";
    }, {
        readonly providerName: "deepmind";
        readonly source: "Gemini CLI tool registry practice informs code.lsp_inspectDiagnostics; Praxis executes through the shared LSP runtime.";
        readonly directCliSupport: true;
        readonly sideEffectPolicy: "read-only";
    }];
    readonly dependencies: readonly ["workspace.read", "lsp.server.forTargetLanguage", "node.child_process.stdioJsonRpc"];
};
export declare const lspInspectDiagnosticsBaseToolDefinition: import("../../../../../agentCore/agent_executionEngine/basic_toolLayer/baseTools/baseToolDefinition.js").BaseToolDefinition<LspInspectDiagnosticsBestPracticeRequest, LspInspectDiagnosticsBestPracticeOutput>;
export declare const lspInspectDiagnosticsHandler: BaseToolHandler<LspInspectDiagnosticsBestPracticeRequest, LspInspectDiagnosticsBestPracticeOutput>;
