import { ComponentConfig, HTMLAnyAttributes, Intersection, MediaQueryRule, PolymorphicClassName } from './types';
export declare const getStaticVariants: (config: ComponentConfig) => (string | readonly any[] | import("./types").SerializedStyles)[];
export declare const getDynamicVariants: (config: ComponentConfig) => (props: HTMLAnyAttributes) => any[];
/**
* Собирает строку с @media-блоками для адаптивного режима.
* Используется в исходнике конфига вертикали внутри css:
* responsive: css`${getResponsiveCSS([
* { from: 0, to: 559, size: sizeL },
* { from: 560, to: 789, size: sizeM },
* { from: 1023, to: undefined, size: sizeXL },
* ])}`
*
* `size` в правиле — это сами декларации (строка с присвоениями токенов),
* а не имя вариации; декларации обычно вынесены в общую const, чтобы
* переиспользоваться и в `variations.size.*`, и здесь.
*
* Для css/linaria-сборки linaria статически выполняет вызов на этапе сборки
* вертикали и инлайнит готовый @media-CSS в скомпилированный класс; SC/emotion
* получают то же в рантайме при первом обращении к модулю.
*
* Селектор `&&` поднимает специфичность на ×2, чтобы media-правило перебивало
* обычную size-вариацию независимо от порядка правил в stylesheet.
*
* Семантика границ — диапазон ширины viewport в пикселях:
* from → min-width, to → max-width.
*
* Правила не пересекаются — массив просто конкатенируется.
*/
export declare const getResponsiveCSS: (media: MediaQueryRule[]) => string;
export declare const getIntersectionStyles: (props: Record, intersections?: Intersection[]) => PolymorphicClassName[];
//# sourceMappingURL=utils.d.ts.map