export interface ThemeStyleResolver { getStyle(path: string, attribute: string, qId?: string): string | undefined; } export interface ThemeStyleBaseResolver { getStyle(base: string, path: string, attribute: string): string | undefined; } export type ThemeStyleOverrides = Record | undefined>; export type ThemeStyleResolverOptions = { /** Root segment style paths are nested under in the theme JSON, e.g. `'object'`. */ base?: string; /** * Overrides keyed by object ID, then `${path}.${attribute}` (e.g. `.borderColor` * for an empty path). Lookup checks the exact path followed by its parent paths, * before theme fallback. The theme base is not part of an override key. */ overrides?: ThemeStyleOverrides | null; }; /** * Creates a resolver for an already-resolved theme JSON tree (variables resolved, merged with * defaults). Without options, `getStyle(base, path, attribute)` accepts the base per lookup. With * options, `getStyle(path, attribute, qId?)` uses the configured base and optional overrides. * Lookups fall back from the most-specific base and path to the theme root. */ export declare function createThemeStyleResolver(theme: object): ThemeStyleBaseResolver; export declare function createThemeStyleResolver(theme: object, options: ThemeStyleResolverOptions): ThemeStyleResolver;