import StyledSystem, { Theme as StyledSystemTheme } from 'styled-system'; import { LiteralUnion } from 'type-fest'; import { TextStylesLiteral } from './typography'; import { namedSpacingUnits } from './sizes'; interface CustomTheme { opacity?: { [key: string]: string; }; textStyles?: TextStylesLiteral; fonts: { [key: string]: string; }; } export declare type Theme = StyledSystemTheme & CustomTheme; export declare type RequiredTheme = Required; export declare type Responsive = T | (T | null)[] | { [key in keyof ThemeType['breakpoints']]?: T; }; export declare type NamedSpacingLiteral = keyof typeof namedSpacingUnits; export declare type Spacing = LiteralUnion; export declare type SpacingTypes = Spacing | Spacing[]; declare type MarginPropNames = keyof StyledSystem.MarginProps; declare type PaddingPropNames = keyof StyledSystem.PaddingProps; declare type Margins = LiteralUnion; declare type Paddings = LiteralUnion; declare type MarginProps = { [key in MarginPropNames]?: Margins | StyledSystem.ResponsiveValue; }; declare type PaddingProps = { [key in PaddingPropNames]?: Paddings | StyledSystem.ResponsiveValue; }; export declare type SpacingProps = MarginProps & PaddingProps; export {};