/**
 * A single entry in the tab-group color palette.
 *
 * `id` is the value stored on `ITabGroup.color` and serialized in
 * `SerializedTabGroup.color`. `value` is any CSS color expression — a hex
 * literal, an rgb()/hsl()/oklch() function, or a `var(...)` reference.
 *
 * The default palette ships with `var(--dv-tab-group-color-${id})` values so
 * themes can override the defaults purely in CSS. User-supplied palettes
 * typically use raw color literals.
 */
export interface DockviewTabGroupColorEntry {
    id: string;
    value: string;
    label?: string;
}
export declare const DEFAULT_TAB_GROUP_COLORS: readonly DockviewTabGroupColorEntry[];
/**
 * Runtime palette for tab-group color accents.
 *
 * Resolves a stored `color` string to a CSS color expression, with three
 * fall-through modes:
 *   1. `id` matches an entry → entry's `value`
 *   2. `id` doesn't match → `id` itself (raw CSS literal pass-through)
 *   3. `id` is empty or undefined → undefined (caller skips assignment)
 *
 * When `enabled` is false the palette returns undefined for everything; this
 * is the `tabGroupAccent: 'off'` opt-out path.
 */
export declare class TabGroupColorPalette {
    private _entries;
    private _byId;
    private _enabled;
    constructor(entries: readonly DockviewTabGroupColorEntry[], enabled?: boolean);
    get enabled(): boolean;
    set enabled(value: boolean);
    /**
     * Replace the entry list in place. Used by `updateOptions` so that
     * existing palette references (held by chips, indicators, etc.) see
     * the new palette without needing to be re-wired.
     */
    setEntries(entries: readonly DockviewTabGroupColorEntry[]): void;
    entries(): readonly DockviewTabGroupColorEntry[];
    has(id: string): boolean;
    get(id: string): DockviewTabGroupColorEntry | undefined;
    /** First entry's id; used as the default when a color is unset. */
    defaultId(): string | undefined;
    /**
     * Resolve a stored color to its CSS value, or undefined if no value
     * should be written (palette disabled, or color empty/undefined).
     */
    resolveValue(color: string | undefined): string | undefined;
}
/**
 * Set the `--dv-tab-group-color` custom property on `el` to the resolved
 * accent value, or remove it when the palette is disabled / color is unset.
 */
export declare function applyTabGroupAccent(el: HTMLElement, color: string | undefined, palette: TabGroupColorPalette | undefined): void;
/**
 * Return the resolved CSS color for a tab group, or undefined when the
 * palette is disabled or no color is set. Use this when you need the raw
 * value to assign to a non-custom-property style (e.g. SVG stroke,
 * backgroundColor on the indicator underline).
 */
export declare function resolveTabGroupAccent(color: string | undefined, palette: TabGroupColorPalette | undefined): string | undefined;
