import { GdsElement } from '../../gds-element'; /** * Options for `@styleExpressionProperty`. */ export type StyleExpressionPropertyOptions = { /** The DOM-attribute to bind to. Same as the attribute option on Lits @property decorator */ attribute?: string; /** The selector to use for the CSS rule. Defaults to `:host` */ selector?: string; /** The CSS property to set. Defaults to the property key, i.e if the decorator is * attached to a property named `padding`, the default name of the CSS property will * also be `padding`. This option overrides that. */ property?: string; /** A function that takes a value and returns a string. Defaults to `(value) => 'var(--gds-sys-space-${value})'` * This can be used to resolve the values into CSS variables for example. */ valueTemplate?: (value: string) => string; /** A function that takes a property name and an array of values and returns a string. Defaults to * `(property, values) => `${property}: ${values.join(' ')};` * This can be used to customize the generated CSS. This runs after the `valueTemplate` is executed. */ styleTemplate?: (property: string, values: string[]) => string; /** Set this to something unique if the property suffers from caching issues. * This can typically happen if a identically named combo of property and selector is used in multiple * components with different style or value templates. */ cacheOverrideKey?: string; /** * If true, mirror the property value to a DOM attribute (for CSS selectors). */ reflect?: boolean; }; /** * A decorator that can be used to create a Style Expression Property. * * @param options Options for the decorator. */ export declare function styleExpressionProperty(options?: StyleExpressionPropertyOptions): (proto: ElemClass, descriptor: PropertyKey) => void;