import type { BaseToolHandler } from "../../../../../agentCore/agent_executionEngine/basic_toolLayer/baseTools/baseToolDefinition.js";
import { type LspScanDocumentSymbolsOutput, type LspScanDocumentSymbolsRequest } from "./core.js";
import { type LspScanDocumentSymbolsPracticeProviderName } from "./dependencies.js";
export * from "./core.js";
export type LspScanDocumentSymbolsBestPracticeRequest = LspScanDocumentSymbolsRequest & {
    preferredProvider?: LspScanDocumentSymbolsPracticeProviderName;
};
export declare const lspScanDocumentSymbolsProviderPractices: readonly [{
    readonly providerName: "anthropic";
    readonly source: "Claude Code LSPTool maps document symbol lookup to textDocument/documentSymbol.";
    readonly directCliSupport: true;
}, {
    readonly providerName: "openai";
    readonly source: "Codex contributes runtime boundary practice; Praxis executes document symbols through shared LSP runtime.";
    readonly directCliSupport: false;
}, {
    readonly providerName: "deepmind";
    readonly source: "Gemini CLI contributes declaration/execution separation; Praxis executes through shared LSP runtime.";
    readonly directCliSupport: false;
}];
export declare const lspScanDocumentSymbolsBestPracticeDescriptor: {
    readonly toolId: "code.lsp_scanDocumentSymbols";
    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 maps document symbol lookup to textDocument/documentSymbol.";
        readonly directCliSupport: true;
    }, {
        readonly providerName: "openai";
        readonly source: "Codex contributes runtime boundary practice; Praxis executes document symbols through shared LSP runtime.";
        readonly directCliSupport: false;
    }, {
        readonly providerName: "deepmind";
        readonly source: "Gemini CLI contributes declaration/execution separation; Praxis executes through shared LSP runtime.";
        readonly directCliSupport: false;
    }];
    readonly dependencies: readonly ["workspace.read", "lsp.server.forTargetLanguage", "node.child_process.stdioJsonRpc"];
};
export declare const lspScanDocumentSymbolsBaseToolDefinition: import("../../../../../agentCore/agent_executionEngine/basic_toolLayer/baseTools/baseToolDefinition.js").BaseToolDefinition<LspScanDocumentSymbolsBestPracticeRequest, LspScanDocumentSymbolsOutput>;
export declare const lspScanDocumentSymbolsHandler: BaseToolHandler<LspScanDocumentSymbolsBestPracticeRequest, LspScanDocumentSymbolsOutput>;
