import type { ComponentTokenMap, GlobalToken } from '../interface'; import type AbstractCalculator from './calc/calculator'; import { CSSInterpolation } from '@/_cssinjs'; export type OverrideTokenWithoutDerivative = ComponentTokenMap; export type OverrideComponent = keyof OverrideTokenWithoutDerivative; export type GlobalTokenWithComponent = GlobalToken & ComponentTokenMap[C]; export interface StyleInfo { hashId: string; prefixCls: string; } export type CSSUtil = { calc: (number: any) => AbstractCalculator; max: (...values: (number | string)[]) => number | string; min: (...values: (number | string)[]) => number | string; }; export type TokenWithCommonCls = T & { componentCls: string; prefixCls: string; iconCls: string; euiCls: string; } & CSSUtil; export type FullToken = TokenWithCommonCls>; export type GenStyleFn = (token: FullToken, info: StyleInfo) => CSSInterpolation; export type GetDefaultToken = null | OverrideTokenWithoutDerivative[C] | ((token: GlobalToken) => OverrideTokenWithoutDerivative[C]); export type FormatComponentToken = (token: NonNullable) => NonNullable; export interface SubStyleComponentProps { prefixCls: string; } export default function genStyleHooks(component: C | [C, string], styleFn: GenStyleFn, getDefaultToken?: GetDefaultToken): (prefixCls: string) => readonly [string];