export type LspAssistSignatureBoundary = "input" | "contract" | "governance" | "scope" | "environment";
export type LspAssistSignatureGate = {
    accepted: boolean;
    reason?: string;
};
export type LspDocumentPosition = {
    line: number;
    character: number;
};
export type LspAssistSignatureRequest = {
    runtimeId?: string;
    sessionId?: string;
    workspaceRoot?: string;
    documentUri?: string;
    position?: LspDocumentPosition;
    triggerCharacter?: string;
    callExpressionHint?: string;
    requestedScopes?: readonly string[];
    allowedScopes?: readonly string[];
    lspClientReady?: boolean;
    dryRun?: boolean;
    contract?: LspAssistSignatureGate;
    governance?: LspAssistSignatureGate;
    auditContext?: Record<string, unknown>;
};
export type LspAssistSignatureErrorCode = "MISSING_RUNTIME_ID" | "MISSING_SESSION_ID" | "MISSING_WORKSPACE_ROOT" | "MISSING_DOCUMENT_URI" | "MISSING_POSITION" | "INVALID_POSITION" | "LSP_CLIENT_NOT_READY" | "CONTRACT_REJECTED" | "GOVERNANCE_REJECTED" | "SCOPE_DENIED" | "REAL_SIDE_EFFECT_NOT_ALLOWED";
export type LspAssistSignatureError = {
    code: LspAssistSignatureErrorCode;
    message: string;
    boundary: LspAssistSignatureBoundary;
    safeForRuntimeInspection: true;
    internalDetailExposed: false;
};
export type LspSignatureAssistPlan = {
    toolId: "code.lsp_assistSignature";
    capability: "assist-lsp-signature";
    runtimeId: string;
    sessionId: string;
    workspaceRoot: string;
    documentUri: string;
    position: LspDocumentPosition;
    signatureContext: {
        triggerCharacter?: string;
        callExpressionHint?: string;
    };
    permissions: {
        required: readonly ["tool:lsp", "workspace:read"];
        acceptedScopes: readonly string[];
        approvalRequired: false;
    };
    execution: {
        dryRun: true;
        lspInvoked: false;
        documentMutated: false;
        unsafeSideEffects: false;
    };
    audit: {
        event: "basicTool.lsp.assistSignature.planned";
        auditContext: Readonly<Record<string, unknown>>;
    };
};
export type LspAssistSignatureResult = {
    ok: true;
    plan: LspSignatureAssistPlan;
    events: readonly string[];
} | {
    ok: false;
    error: LspAssistSignatureError;
    events: readonly string[];
};
export declare const lspAssistSignatureDescriptor: {
    readonly toolId: "code.lsp_assistSignature";
    readonly capability: "assist-lsp-signature";
    readonly layer: "agent_executionEngine.basic_toolLayer.baseTools.codeBase.lsp";
    readonly purpose: "plan a signature-help lookup without calling a live LSP server";
    readonly sideEffectPolicy: "dry-run-only";
    readonly requiresApproval: false;
};
export declare function planLspSignatureAssistance(request?: LspAssistSignatureRequest): LspAssistSignatureResult;
