export type LspInspectSymbolBoundary = "input" | "contract" | "governance" | "scope";
export type LspInspectSymbolGate = {
    accepted: boolean;
    reason?: string;
};
export type LspSymbolPosition = {
    line: number;
    character: number;
};
export type LspSymbolRange = {
    start: LspSymbolPosition;
    end: LspSymbolPosition;
};
export type LspSymbolKind = "file" | "module" | "namespace" | "package" | "class" | "method" | "property" | "field" | "constructor" | "enum" | "interface" | "function" | "variable" | "constant" | "string" | "number" | "boolean" | "array" | "object" | "key" | "null" | "enumMember" | "struct" | "event" | "operator" | "typeParameter";
export type LspSymbolInfo = {
    name: string;
    kind: LspSymbolKind;
    range: LspSymbolRange;
    selectionRange?: LspSymbolRange;
    detail?: string;
    containerName?: string;
};
export type LspInspectSymbolTarget = {
    position?: LspSymbolPosition;
    symbolName?: string;
};
export type LspInspectSymbolRequest = {
    runtimeId?: string;
    sessionId?: string;
    invocationId?: string;
    documentUri?: string;
    target?: LspInspectSymbolTarget;
    symbols?: readonly LspSymbolInfo[];
    requestedScopes?: readonly string[];
    allowedScopes?: readonly string[];
    dryRun?: boolean;
    contract?: LspInspectSymbolGate;
    governance?: LspInspectSymbolGate;
};
export type LspInspectSymbolErrorCode = "MISSING_RUNTIME_ID" | "MISSING_SESSION_ID" | "MISSING_DOCUMENT_URI" | "MISSING_SYMBOL_TARGET" | "INVALID_SYMBOL_TARGET" | "INVALID_SYMBOL_SNAPSHOT" | "CONTRACT_REJECTED" | "GOVERNANCE_REJECTED" | "SCOPE_DENIED" | "REAL_LSP_CALL_NOT_ALLOWED";
export type LspInspectSymbolError = {
    code: LspInspectSymbolErrorCode;
    message: string;
    boundary: LspInspectSymbolBoundary;
    safeForRuntimeInspection: true;
    internalDetailExposed: false;
};
export type LspInspectSymbolSnapshot = {
    tool: "code.lsp_inspectSymbol";
    runtimeId: string;
    sessionId: string;
    invocationId: string;
    documentUri: string;
    target: LspInspectSymbolTarget;
    symbol?: LspSymbolInfo;
    candidates: readonly LspSymbolInfo[];
    acceptedScopes: readonly string[];
    execution: {
        dryRun: true;
        lspServerInvoked: false;
        fileMutationPlanned: false;
        unsafeSideEffects: false;
    };
    audit: {
        capability: "inspect-symbol";
        governanceRequired: true;
        tapDelegation: "basic-tool-primitive";
    };
};
export type LspInspectSymbolResult = {
    ok: true;
    snapshot: LspInspectSymbolSnapshot;
    events: readonly string[];
} | {
    ok: false;
    error: LspInspectSymbolError;
    events: readonly string[];
};
export declare const lspInspectSymbolDescriptor: {
    readonly tool: "code.lsp_inspectSymbol";
    readonly capability: "inspect-symbol";
    readonly layer: "agent_executionEngine.basic_toolLayer.baseTools.codeBase.lsp";
    readonly unsafeSideEffects: false;
    readonly firstRoundExecution: "snapshot-envelope";
};
export declare function inspectLspSymbol(request?: LspInspectSymbolRequest): LspInspectSymbolResult;
