import { ThemeUICSSObject } from 'theme-ui';
import type { ValueOrArray } from '../types';
import type { GlobalTheme } from './types';
declare type ResponsiveValue = ValueOrArray<string | number | null | undefined>;
/**
 * Returns whether the passed theme is the legacy theme (by checking the number of breakpoints it has).
 */
export declare const isLegacyTheme: (theme: GlobalTheme) => boolean;
/**
 * Helper function for use in Theme UI's `sx` prop around responsive values (e.g. `fontSize: responsive(['12px', '14px', '16px'])`).
 * This ensures compatibility with both the new and legacy themes.
 *
 * TODO: Ideally we would do this "automatically" at the Theme UI level, so consumers don't have to use this function.
 *       Ask Piotr about it. :)
 * TODO: Delete this function when all apps have `useLegacyTheme` = `false`.
 */
export declare const responsive: <T extends ResponsiveValue | ((theme: GlobalTheme) => ResponsiveValue)>(values: T) => T extends ResponsiveValue ? (theme: GlobalTheme) => T : T;
export declare type VariantsStyles<Keys extends string = string> = Record<Keys, ThemeUICSSObject>;
export declare const variantStyles: <TKeys extends string>(obj: VariantsStyles<TKeys>) => VariantsStyles<TKeys>;
export {};
