import type * as CSS from 'csstype'; import * as React from 'react'; import type Keyframes from '../Keyframes'; import type { Linter } from '../linters'; import type { HashPriority } from '../StyleContext'; import { Theme } from '../theme'; import type { Transformer } from '../transformers/interface'; declare const SKIP_CHECK = "_skip_check_"; declare const MULTI_VALUE = "_multi_value_"; export type CSSProperties = Omit, 'animationName'> & { animationName?: CSS.PropertiesFallback['animationName'] | Keyframes; }; export type CSSPropertiesWithMultiValues = { [K in keyof CSSProperties]: CSSProperties[K] | readonly Extract[] | { [SKIP_CHECK]?: boolean; [MULTI_VALUE]?: boolean; value: CSSProperties[K] | CSSProperties[K][]; }; }; export type CSSPseudos = { [K in CSS.Pseudos]?: CSSObject; }; type ArrayCSSInterpolation = readonly CSSInterpolation[]; export type InterpolationPrimitive = null | undefined | boolean | number | string | CSSObject; export type CSSInterpolation = InterpolationPrimitive | ArrayCSSInterpolation | Keyframes; export type CSSOthersObject = Record; export interface CSSObject extends CSSPropertiesWithMultiValues, CSSPseudos, CSSOthersObject { } export declare function normalizeStyle(styleStr: string): any; export interface ParseConfig { hashId?: string; hashPriority?: HashPriority; layer?: string; path?: string; transformers?: Transformer[]; linters?: Linter[]; } export interface ParseInfo { root?: boolean; injectHash?: boolean; parentSelectors: string[]; } export declare function uniqueHash(path: (string | number)[], styleStr: string): string; export declare const STYLE_PREFIX = "style"; export default function useStyleRegister(info: { theme: Theme; token: any; path: string[]; hashId?: string; layer?: string; nonce?: string | (() => string); clientOnly?: boolean; order?: number; }, styleFn: () => CSSInterpolation): (node: React.ReactElement) => React.JSX.Element; export {};