import * as CSS from 'csstype'; export declare type DebugData = { componentName: string; siteVariables: Object[]; componentVariables: Object[]; componentStyles: Record; }; export declare type Extendable = T & { [key: string]: V; }; export declare type ObjectOrFunc = ((arg: TArg) => TResult) | TResult; declare type AnimationKeyFrame = Record<'from' | 'to' | string, ICSSInJSStyle>; export interface AnimationName

> { keyframe?: AnimationKeyFrame | ((params: P) => AnimationKeyFrame); params?: P; } declare type CSSProperties = Omit, 'animationName'> & { animationName?: AnimationName | AnimationKeyFrame | string | 'none'; }; export interface ICSSPseudoElementStyle extends ICSSInJSStyle { content?: string; } export declare type ICSSInJSStyle = Omit & { [key: string]: any; display?: CSSProperties['display'] | CSSProperties['display'][]; speak?: CSS.Globals | 'none' | 'normal' | 'spell-out'; '::before'?: ICSSPseudoElementStyle; '::after'?: ICSSPseudoElementStyle; ':hover'?: ICSSInJSStyle; ':active'?: ICSSInJSStyle; ':focus'?: ICSSInJSStyle; ':visited'?: ICSSInJSStyle; ':first-child'?: ICSSInJSStyle; ':last-child'?: ICSSInJSStyle; ':nth-child(n+2)'?: ICSSInJSStyle; '-webkit-font-smoothing'?: CSS.Globals | 'auto' | 'none' | 'antialiased' | 'subpixel-antialiased'; '-moz-osx-font-smoothing'?: CSS.Globals | 'auto' | 'grayscale'; }; export interface ThemeAnimation { keyframe: ((kp: KP) => object) | object | string; delay?: string; direction?: string; duration?: string; fillMode?: string; iterationCount?: string; playState?: string; timingFunction?: string; keyframeParams?: KP; } export interface FontFaceProps { fontStretch?: string; fontStyle?: string; fontVariant?: string; fontWeight?: number; localAlias?: string | string[]; unicodeRange?: string; } export interface FontFace { name: string; paths: string[]; props: FontFaceProps; } export declare type FontFaces = FontFace[]; export interface SiteVariablesInput extends Record { } export interface SiteVariablesPrepared extends SiteVariablesInput { fontSizes: Record; } export declare type ComponentVariablesObject = any; export declare type ComponentVariablesInput = ComponentVariablesObject | ComponentVariablesPrepared; export declare type ComponentVariablesPrepared = (siteVariables?: SiteVariablesPrepared) => ComponentVariablesObject; export declare type ComponentSlotStyle = ComponentSlotStyleFunction | ICSSInJSStyle; export declare type PropsWithVarsAndStyles = Extendable<{ variables?: ComponentVariablesInput; styles?: ComponentSlotStyle; }>; export interface ComponentSlotStylesInput extends Record> { } export interface ComponentSlotStylesPrepared extends Record> { } export interface ComponentSlotStylesResolved extends Record { } export interface ComponentStyleFunctionParam { props: TProps; variables: TVars; theme: ThemePrepared; rtl: boolean; disableAnimations: boolean; } export declare type ComponentSlotStyleFunction = (styleParam: ComponentStyleFunctionParam) => ICSSInJSStyle; export interface ComponentSlotStylesPrepared extends Record> { } export declare type StaticStyleObject = Record; export declare type StaticStyleRenderable = string | StaticStyleObject; export declare type StaticStyleFunction = (siteVariables?: SiteVariablesPrepared) => StaticStyleObject; export declare type StaticStyle = StaticStyleRenderable | StaticStyleFunction; export declare type StaticStyles = StaticStyle[]; export declare type ThemeComponentVariablesInput = { [K in keyof ThemeStylesProps]?: ComponentVariablesInput; } & Record; export declare type ThemeComponentVariablesPrepared = { [K in keyof ThemeStylesProps]?: ComponentVariablesPrepared; } & Record; export declare type ThemeComponentStylesInput = { [K in keyof ThemeStylesProps]?: ComponentSlotStylesInput; } & Record; export declare type ThemeComponentStylesPrepared = { [K in keyof ThemeStylesProps]?: ComponentSlotStylesPrepared; } & Record; export interface ThemeInput = any> { siteVariables?: SiteVariablesInput; componentVariables?: ThemeComponentVariablesInput; componentStyles?: ThemeComponentStylesInput; fontFaces?: FontFaces; staticStyles?: StaticStyles; animations?: { [key: string]: ThemeAnimation; }; } export interface ThemePrepared = any> { siteVariables: SiteVariablesPrepared; componentVariables: { [key in keyof ThemeComponentVariablesPrepared]: ComponentVariablesPrepared; }; componentStyles: { [key in keyof ThemeComponentStylesPrepared]: ComponentSlotStylesPrepared; }; fontFaces: FontFaces; staticStyles: StaticStyles; animations: Record; } export {};