import { type LspLocation, type LspTextDocumentPosition, type LspToolContext, type LspToolResult } from "../code.lsp_locateDefinition/core.js";
import { type LspLocateDefinitionRuntimeOptions } from "../_shared/runtime.js";
export type LspLocateTypeDefinitionOutput = {
    kind: "agentCore.basicTool.lsp.locateTypeDefinition";
    target: LspTextDocumentPosition;
    locations: readonly LspLocation[];
    dryRun: boolean;
    providerCalled: boolean;
    permissionsRequired: readonly ["workspace:read", "lsp:read"];
    unsafeSideEffects: false;
};
export type LspLocateTypeDefinitionProvider = (target: LspTextDocumentPosition, context: LspToolContext) => readonly LspLocation[] | Promise<readonly LspLocation[]>;
export type LspLocateTypeDefinitionRequest = {
    target?: Partial<LspTextDocumentPosition>;
    context?: LspToolContext;
    provider?: LspLocateTypeDefinitionProvider;
    runtime?: LspLocateDefinitionRuntimeOptions;
};
export declare const lspLocateTypeDefinitionDescriptor: {
    readonly toolId: "code.lsp_locateTypeDefinition";
    readonly capability: "locate-type-definition";
    readonly route: "agent_executionEngine.basic_toolLayer.baseTools.codeBase.lsp";
    readonly permissionsRequired: readonly ["workspace:read", "lsp:read"];
    readonly defaultDryRun: true;
    readonly unsafeSideEffects: false;
    readonly tapOwnsApproval: true;
};
export declare function locateLspTypeDefinition(request?: LspLocateTypeDefinitionRequest): Promise<LspToolResult<LspLocateTypeDefinitionOutput>>;
