import { type PlainObject } from 'ag-charts-core'; export interface PartialCacheKeyOptions { permissivePath?: boolean; pick?: boolean; proxyPaths?: Record>; } interface PartialCacheEntry { value: PlainObject | undefined; } /** * Resolved partials, keyed by request. A styler resolves one per datum and resolving is not a read — operations * graft theme branches onto the graph, resolve them, then roll them back — so repeating an identical request * rebuilds and discards the same sub-graph once per datum. */ export declare class OptionsPartialCache { private readonly entries; private resolvedState; clear(): void; /** * Drop everything resolved against a superseded root object. Checked on access rather than hooked to the call * that replaces it, because the path that serves a chart from the structural cache never resolves the graph at * all — an invalidation the graph has to remember to announce is one that path would silently skip. */ invalidateIfStale(resolvedState: unknown): void; /** * A key identifying the request, or `undefined` when it must not be cached: `proxyPaths` rewrites the caller's * own object rather than only reading it. */ keyFor(path: Array, partialOptions: PlainObject, resolveOptions?: PartialCacheKeyOptions): string | undefined; read(key: string): PartialCacheEntry | undefined; write(key: string, value: PlainObject | undefined): void; } /** * Callers re-derive CSS variables from the partial on each request, so the map arrives fresh every time and is * almost always a repeat of what the graph already holds. */ export declare function hasUnmergedCssVariables(current: Record, incoming: Record): boolean; export {};