/** * Protocol-agnostic types for sfmc-language-lsp. * * We re-use the standard LSP type definitions from vscode-languageserver-types. * These are plain TypeScript interfaces/enums with no runtime VS Code dependency, * so they work equally in Node (LSP server, MCP server) and browser (Chrome extension). */ export type { Position, Range, Diagnostic, CompletionItem, Hover, SignatureHelp, SignatureInformation, ParameterInformation, CodeAction, TextEdit, Location, WorkspaceEdit, } from 'vscode-languageserver-types'; export { DiagnosticSeverity, CompletionItemKind, CompletionItemTag, InsertTextFormat, MarkupKind, CodeActionKind, } from 'vscode-languageserver-types'; /** Input context for all language service operations. */ export interface DocumentContext { /** Full document text. */ text: string; /** Language identifier: 'ampscript' or 'ssjs'. */ languageId: 'ampscript' | 'ssjs'; /** Optional document URI (used for code action edit maps). */ uri?: string; } /** Service-level settings. */ export interface SfmcSettings { /** Maximum number of diagnostics to emit per document. Default: 100. */ maxNumberOfProblems: number; /** * Target platform for MCN compatibility diagnostics. * - `'engagement'` (default): Marketing Cloud Engagement — existing behaviour, no MCN diagnostics. * - `'next'`: Marketing Cloud Next — flags AMPscript functions unsupported in MCN (error), * and flags any SSJS content as unsupported (error). */ targetPlatform?: 'engagement' | 'next'; /** * When `true`, suppress LSP diagnostics that are already covered by * eslint-plugin-sfmc rules, avoiding duplicate warnings when both the * language server and ESLint are active. LSP-only diagnostics (e.g. * delimiter balance, IF/ENDIF/FOR/NEXT balance, GTL blocks, MCN * compatibility) are always shown regardless of this setting. */ disableLspDiagnosticsForEslintRules?: boolean; } export declare const DEFAULT_SETTINGS: SfmcSettings; //# sourceMappingURL=types.d.ts.map