import type { LspWorkspaceFacts } from "../../../../../agentCore/agent_executionEngine/basic_toolLayer/toolDependency/lspDependencyResolver.js";
import type { LspLocation, LspRange, LspTextDocumentPosition } from "../code.lsp_locateDefinition/core.js";
export type LspRuntimeServerConfig = {
    command: string;
    args: readonly string[];
    languageId: string;
    fileExtensions: readonly string[];
    initializationOptions?: unknown;
};
export type LspLocateDefinitionRuntimeOptions = {
    workspaceRoot?: string;
    server?: LspRuntimeServerConfig;
    servers?: readonly LspRuntimeServerConfig[];
    resolvedServerPath?: string;
    workspaceFacts?: LspWorkspaceFacts;
    workspaceLanguageId?: string;
    workspaceFilePathHint?: string;
    timeoutMs?: number;
    maxFileBytes?: number;
};
export type LspRuntimeRequestOptions = LspLocateDefinitionRuntimeOptions & {
    method: string;
    params?: Readonly<Record<string, unknown>>;
};
export type LspRuntimeDocumentSymbol = {
    name: string;
    kind: string;
    range: LspRange;
    selectionRange?: LspRange;
    detail?: string;
    children?: readonly LspRuntimeDocumentSymbol[];
};
export type LspRuntimeWorkspaceSymbol = {
    name: string;
    kind: string;
    location?: LspLocation;
    containerName?: string;
    detail?: string;
};
export type LspRuntimeTextEdit = {
    range: LspRange;
    newText: string;
};
export type LspRuntimeCompletionItem = {
    label: string;
    kind?: string;
    detail?: string;
    documentation?: string;
    sortText?: string;
    filterText?: string;
    insertText?: string;
    textEdit?: LspRuntimeTextEdit;
};
export type LspRuntimeSignatureHelp = {
    signatures: readonly {
        label: string;
        documentation?: string;
        parameters: readonly {
            label: string;
            documentation?: string;
        }[];
    }[];
    activeSignature?: number;
    activeParameter?: number;
};
export type LspRuntimeHover = {
    contents: string;
    range?: LspRange;
};
export type LspRuntimeDiagnostic = {
    range: LspRange;
    message: string;
    severity?: "error" | "warning" | "information" | "hint";
    code?: string;
    source?: string;
};
export type LspRuntimeCodeAction = {
    title: string;
    kind?: string;
    diagnostics: readonly LspRuntimeDiagnostic[];
    isPreferred?: boolean;
    editAvailable: boolean;
    commandAvailable: boolean;
    raw: unknown;
};
export declare function locateDefinitionWithLspRuntime(target: LspTextDocumentPosition, options?: LspLocateDefinitionRuntimeOptions): Promise<readonly LspLocation[]>;
export declare function requestTextDocumentWithLspRuntime(target: LspTextDocumentPosition, options: LspRuntimeRequestOptions): Promise<unknown>;
export declare function requestWorkspaceWithLspRuntime(options: LspLocateDefinitionRuntimeOptions & {
    method: string;
    params?: Readonly<Record<string, unknown>>;
}): Promise<unknown>;
export declare function locateTypeDefinitionWithLspRuntime(target: LspTextDocumentPosition, options?: LspLocateDefinitionRuntimeOptions): Promise<readonly LspLocation[]>;
export declare function traceReferencesWithLspRuntime(target: LspTextDocumentPosition, includeDeclaration: boolean, options?: LspLocateDefinitionRuntimeOptions): Promise<readonly LspLocation[]>;
export declare function traceImplementationsWithLspRuntime(target: LspTextDocumentPosition, options?: LspLocateDefinitionRuntimeOptions): Promise<readonly LspLocation[]>;
export declare function scanDocumentSymbolsWithLspRuntime(target: Pick<LspTextDocumentPosition, "filePath" | "languageId">, options?: LspLocateDefinitionRuntimeOptions): Promise<readonly LspRuntimeDocumentSymbol[]>;
export declare function searchWorkspaceSymbolsWithLspRuntime(query: string, options?: LspLocateDefinitionRuntimeOptions): Promise<readonly LspRuntimeWorkspaceSymbol[]>;
export declare function completeWithLspRuntime(target: LspTextDocumentPosition, options?: LspLocateDefinitionRuntimeOptions & {
    triggerCharacter?: string;
    maxItems?: number;
}): Promise<readonly LspRuntimeCompletionItem[]>;
export declare function signatureHelpWithLspRuntime(target: LspTextDocumentPosition, options?: LspLocateDefinitionRuntimeOptions & {
    triggerCharacter?: string;
}): Promise<LspRuntimeSignatureHelp>;
export declare function hoverWithLspRuntime(target: LspTextDocumentPosition, options?: LspLocateDefinitionRuntimeOptions): Promise<LspRuntimeHover | undefined>;
export declare function formatDocumentWithLspRuntime(target: Pick<LspTextDocumentPosition, "filePath" | "languageId">, formattingOptions: {
    tabSize: number;
    insertSpaces: boolean;
}, options?: LspLocateDefinitionRuntimeOptions): Promise<readonly LspRuntimeTextEdit[]>;
export declare function formatRangeWithLspRuntime(target: Pick<LspTextDocumentPosition, "filePath" | "languageId">, range: LspRange, formattingOptions: {
    tabSize: number;
    insertSpaces: boolean;
}, options?: LspLocateDefinitionRuntimeOptions): Promise<readonly LspRuntimeTextEdit[]>;
export declare function codeActionsWithLspRuntime(target: Pick<LspTextDocumentPosition, "filePath" | "languageId"> & {
    range: LspRange;
}, options?: LspLocateDefinitionRuntimeOptions & {
    diagnostics?: readonly LspRuntimeDiagnostic[];
    only?: readonly string[];
}): Promise<readonly LspRuntimeCodeAction[]>;
export declare function inspectDiagnosticsWithLspRuntime(target: Pick<LspTextDocumentPosition, "filePath" | "languageId">, options?: LspLocateDefinitionRuntimeOptions & {
    waitMs?: number;
}): Promise<readonly LspRuntimeDiagnostic[]>;
