import { Dict, Omit } from "@chakra-xui/utils"; import { PropertiesFallback, Property, Pseudos as CSSPseudos, StandardProperties, SvgProperties } from "csstype"; import { ChakraStyleProps } from "./parser.types"; import { Pseudos } from "./pseudo"; import { ResponsiveValue } from "./utils"; declare type CSS = PropertiesFallback; declare type CSSProperties = StandardProperties & SvgProperties; export declare type CSSPseudoStyles = { [K in CSSPseudos]?: SystemStyleObject; }; export interface CSSObject extends CSSPropertiesWithMultiValues, CSSPseudosForCSSObject, CSSOthersObjectForCSSObject { } declare type CSSPropertiesWithMultiValues = { [K in keyof CSSProperties]: CSSProperties[K]; }; declare type CSSPseudosForCSSObject = { [K in CSSPseudos]?: CSSObject; }; declare type CSSInterpolation = undefined | number | string | CSSObject; interface CSSOthersObjectForCSSObject { [propertiesName: string]: CSSInterpolation; } export interface CSSSelectorStyles { [cssSelector: string]: SystemStyleObject; } interface AliasesCSSProperties extends Omit { } interface OverwriteCSSProperties { boxShadow?: Property.BoxShadow | number; fontWeight?: Property.FontWeight | string; zIndex?: Property.ZIndex | string; } interface AllSystemCSSProperties extends Omit, AliasesCSSProperties, OverwriteCSSProperties { } export declare type SystemCSSProperties = { [K in keyof AllSystemCSSProperties]: string | ResponsiveValue | ((theme: any) => ResponsiveValue) | SystemStyleObject; }; export interface ApplyPropStyles { /** * Apply theme-aware style objects in `theme` */ apply?: ResponsiveValue; } declare type PseudoStyles = { [K in keyof Pseudos]?: K extends "_before" | "_after" ? SystemCSSProperties & { content?: string; } : SystemCSSProperties; }; export declare type SystemStyleObject = (SystemCSSProperties & CSSPseudoStyles & ApplyPropStyles & PseudoStyles) | (SystemCSSProperties & CSSSelectorStyles); export declare type StyleObjectOrFn = SystemStyleObject | ((theme: Dict) => SystemStyleObject); export {};