import { RGBA, type ColorInput } from "./RGBA";
export interface StyleDefinition {
    fg?: RGBA;
    bg?: RGBA;
    bold?: boolean;
    italic?: boolean;
    underline?: boolean;
    dim?: boolean;
}
export interface MergedStyle {
    fg?: RGBA;
    bg?: RGBA;
    attributes: number;
}
export interface ThemeTokenStyle {
    scope: string[];
    style: {
        foreground?: ColorInput;
        background?: ColorInput;
        bold?: boolean;
        italic?: boolean;
        underline?: boolean;
        dim?: boolean;
    };
}
export declare function convertThemeToStyles(theme: ThemeTokenStyle[]): Record<string, StyleDefinition>;
export declare class SyntaxStyle {
    private styles;
    private mergedStyleCache;
    constructor(styles: Record<string, StyleDefinition>);
    static fromTheme(theme: ThemeTokenStyle[]): SyntaxStyle;
    mergeStyles(...styleNames: string[]): MergedStyle;
    getStyle(name: string): StyleDefinition | undefined;
    clearCache(): void;
    getCacheSize(): number;
}
