/** Human-readable syntax token name (without CSS custom property prefix). */
export type SyntaxThemeTokenKey = 'keyword' | 'string' | 'comment' | 'number' | 'function' | 'type' | 'variable' | 'operator' | 'constant' | 'tag' | 'attribute' | 'property' | 'punctuation' | 'background';
/**
 * Token value — either a single string or a [light, dark] tuple.
 * Tuples are converted to CSS light-dark() at theme creation time.
 */
export type SyntaxTokenValue = string | [light: string, dark: string];
/** Token map for defineSyntaxTheme input — values can be strings or tuples. */
export type SyntaxThemeTokenInput = Record<SyntaxThemeTokenKey, SyntaxTokenValue>;
/** Resolved token map — all values are CSS strings (tuples resolved to light-dark()). */
export type SyntaxThemeTokenMap = Record<SyntaxThemeTokenKey, string>;
/** Input to defineSyntaxTheme. */
export interface SyntaxThemeInput {
    name: string;
    tokens: SyntaxThemeTokenInput;
}
/** A defined syntax theme — tokens are resolved to CSS strings. */
export interface SyntaxThemeDefinition {
    /** Theme name */
    name: string;
    /** Resolved token values (light-dark() CSS strings) */
    tokens: SyntaxThemeTokenMap;
    /** Original input tokens (preserves tuples for mode resolution) */
    __inputTokens: SyntaxThemeTokenInput;
}
/** All valid human-readable token keys, derived from the defaults. */
export declare const ALL_SYNTAX_KEYS: SyntaxThemeTokenKey[];
/**
 * Resolve a token value for a specific color mode.
 * - [light, dark] tuple → picks the correct side
 * - light-dark(a, b) string → parses and picks
 * - plain string → pass through
 */
export declare function resolveSyntaxTokenForMode(value: SyntaxTokenValue, mode: 'light' | 'dark'): string;
/**
 * Create a syntax theme from a complete token map.
 *
 * Token values can be:
 * - A string: used as-is (e.g. '#ff79c6' or 'light-dark(#0064E0, #2694FE)')
 * - A [light, dark] tuple: converted to light-dark(light, dark)
 *
 * @example
 * const myTheme = defineSyntaxTheme({
 *   name: 'my-theme',
 *   tokens: {
 *     keyword: ['#0064E0', '#2694FE'],     // [light, dark] tuple
 *     string: '#98c379',                    // same in both modes
 *     comment: 'light-dark(#666, #999)',    // CSS light-dark() string
 *     // ... all 14 tokens
 *   },
 * });
 */
export declare function defineSyntaxTheme(input: SyntaxThemeInput): SyntaxThemeDefinition;
/** Generate a CSS custom property style object for React's style prop. */
export declare function syntaxThemeStyle(theme: SyntaxThemeDefinition): Record<string, string>;
/** Convert a syntax theme to CSS declarations (no selector wrapper). */
export declare function syntaxThemeToCSS(theme: SyntaxThemeDefinition): string;
//# sourceMappingURL=defineSyntaxTheme.d.ts.map