import { languages } from 'monaco-editor';
import { p as ReservedKeyword, O as Operations, q as SupportedFormats } from './types-CxQPMHn1.js';
import '@tokens-studio/schema-validation';

declare const tokenscriptLanguageDefinition: languages.IMonarchLanguage;
declare const tokenscriptLanguageConfig: languages.LanguageConfiguration;

/**
 * Prism.js syntax highlighting for TokenScript
 * Uses shared patterns from spec.ts
 */
declare function tokenscriptLanguage(Prism: any): any;

/**
 * Shared syntax highlighting patterns for TokenScript language
 * Used by both Monaco Editor (VSCode) and Prism.js implementations
 */

declare const KEYWORDS: ReservedKeyword[];
declare const TYPES: readonly ["String", "Number", "NumberWithUnit", "Color", "List", "Dictionary", "Boolean"];
declare const BUILTIN_FUNCTIONS: readonly ["rgb", "hsl", "srgb", "lrgb", "hex", "oklch", "oklchRamp", "lighten", "darken", "saturate", "desaturate", "spin", "mix", "round_to", "snap", "remap", "pow", "linear-gradient", "type"];
declare const UNITS: SupportedFormats[];
declare const OPERATORS: readonly [...Operations[], "=", ">", "<", ":", "==", "<=", ">=", "!="];
declare const PATTERNS: {
    /** Single-line comments */
    readonly comment: RegExp;
    /** String literals (single or double quotes) */
    readonly string: RegExp;
    /** TokenScript references with curly braces (e.g., {token.path}) */
    readonly reference: RegExp;
    /** Hex color codes (#RGB, #RRGGBB, #RRGGBBAA) */
    readonly hexColor: RegExp;
    /** Numbers with CSS units (e.g., 10px, 1.5em, 45deg) - dynamically constructed from UNITS */
    readonly numberWithUnit: RegExp;
    /** Plain numbers (integers and floats, including scientific notation) */
    readonly number: RegExp;
    /** Float numbers with decimal point */
    readonly float: RegExp;
    /** Identifiers and keywords */
    readonly identifier: RegExp;
    /** Operators */
    readonly operator: RegExp;
    /** Punctuation */
    readonly punctuation: RegExp;
    /** Method calls (e.g., .methodName() ) */
    readonly method: RegExp;
    /** Property access (e.g., .propertyName) */
    readonly property: RegExp;
    /** Color type constructors (e.g., Color, Color.Rgb, Color.Hex) - accepts any subtype */
    readonly colorType: RegExp;
};
/**
 * Monaco-specific patterns that cannot be shared due to Monaco's tokenizer requirements
 * Monaco uses different syntax for string state transitions and lookahead
 */
declare const MONACO_PATTERNS: {
    /** Invalid string (unterminated double quote) - Monaco-specific for error highlighting */
    readonly stringInvalidDouble: RegExp;
    /** Invalid string (unterminated single quote) - Monaco-specific for error highlighting */
    readonly stringInvalidSingle: RegExp;
    /** String start (double quote) - Monaco-specific for state-based tokenization */
    readonly stringStartDouble: RegExp;
    /** String start (single quote) - Monaco-specific for state-based tokenization */
    readonly stringStartSingle: RegExp;
    /** Number with any unit (captures unit for dynamic validation) - Monaco-specific for unit validation */
    readonly numberWithDynamicUnit: RegExp;
};
declare function createKeywordPattern(keywords: readonly string[]): RegExp;
declare function createUnitPattern(units: readonly string[]): RegExp;

export { BUILTIN_FUNCTIONS, KEYWORDS, MONACO_PATTERNS, OPERATORS, PATTERNS, TYPES, UNITS, createKeywordPattern, createUnitPattern, tokenscriptLanguage, tokenscriptLanguageConfig, tokenscriptLanguageDefinition };
