import React, { PropsWithChildren } from 'react'; import { colors as colorGroups } from 'icecream-base'; import { UnionToIntersection, RecursiveRequired } from '../utils/type'; import { LangData } from './langData'; export * from './langData'; /** 字符串字面量转成 `string`, 传入对象类型时,则会递归处理每个字段 */ declare type WidenString = T extends object ? { [P in keyof T]: T[P] extends string ? string : WidenString; } : T extends string ? string : T; declare type Groups = typeof colorGroups; declare type GroupKeys = keyof (Groups); declare type Colors = WidenString>; declare type PartialColors = Partial; interface Time { /** * UTC 偏移量。 * * 若不设置使用客户端所在时区,设置后使用 utcOffset 对应的时区。 * * utcOffset 可设置范围: (-16, 16) ,单位为小时 */ utcOffset?: number; } interface Mask { modal?: { /** 默认为 false 表示点击遮罩不关闭 */ clickable?: boolean; }; drawer?: { /** 默认为 true 表示点击遮罩关闭 */ clickable?: boolean; }; } declare type RequiredMask = RecursiveRequired; export declare type ConfigContextValue = { /** class 前缀。所有的 icecream 组件 class 都会在此基础上拼接 */ prefix: string; /** 语言数据 */ langData: LangData; /** 颜色变量 */ colors: Colors; /** 时间相关 */ time: Time; /** 遮罩相关 */ mask: Mask; }; export declare type ComponentSize = 'large' | 'default' | 'small'; export declare function useConfig(): ConfigContextValue; export declare function usePrefix(name: string, customizedPrefix?: string): string; export declare function useLangData(moduleName: T): LangData[T]; export declare function useLangData(): LangData; export declare function useColors(): { readonly blue1: string; readonly blue2: string; readonly blue3: string; readonly blue4: string; readonly blue5: string; readonly blue6: string; readonly blue7: string; readonly blue8: string; readonly blue9: string; readonly blue10: string; readonly cobalt1: string; readonly cobalt2: string; readonly cobalt3: string; readonly cobalt4: string; readonly cobalt5: string; readonly cobalt6: string; readonly cobalt7: string; readonly cobalt8: string; readonly cobalt9: string; readonly cobalt10: string; readonly cyan1: string; readonly cyan2: string; readonly cyan3: string; readonly cyan4: string; readonly cyan5: string; readonly cyan6: string; readonly cyan7: string; readonly cyan8: string; readonly cyan9: string; readonly cyan10: string; readonly grey1: string; readonly grey2: string; readonly grey3: string; readonly grey4: string; readonly grey5: string; readonly grey6: string; readonly grey7: string; readonly grey8: string; readonly grey9: string; readonly grey10: string; readonly green1: string; readonly green2: string; readonly green3: string; readonly green4: string; readonly green5: string; readonly green6: string; readonly green7: string; readonly green8: string; readonly green9: string; readonly green10: string; readonly lemon1: string; readonly lemon2: string; readonly lemon3: string; readonly lemon4: string; readonly lemon5: string; readonly lemon6: string; readonly lemon7: string; readonly lemon8: string; readonly lemon9: string; readonly lemon10: string; readonly magenta1: string; readonly magenta2: string; readonly magenta3: string; readonly magenta4: string; readonly magenta5: string; readonly magenta6: string; readonly magenta7: string; readonly magenta8: string; readonly magenta9: string; readonly magenta10: string; readonly olivine1: string; readonly olivine2: string; readonly olivine3: string; readonly olivine4: string; readonly olivine5: string; readonly olivine6: string; readonly olivine7: string; readonly olivine8: string; readonly olivine9: string; readonly olivine10: string; readonly orange1: string; readonly orange2: string; readonly orange3: string; readonly orange4: string; readonly orange5: string; readonly orange6: string; readonly orange7: string; readonly orange8: string; readonly orange9: string; readonly orange10: string; readonly orangeRed1: string; readonly orangeRed2: string; readonly orangeRed3: string; readonly orangeRed4: string; readonly orangeRed5: string; readonly orangeRed6: string; readonly orangeRed7: string; readonly orangeRed8: string; readonly orangeRed9: string; readonly orangeRed10: string; readonly purple1: string; readonly purple2: string; readonly purple3: string; readonly purple4: string; readonly purple5: string; readonly purple6: string; readonly purple7: string; readonly purple8: string; readonly purple9: string; readonly purple10: string; readonly red1: string; readonly red2: string; readonly red3: string; readonly red4: string; readonly red5: string; readonly red6: string; readonly red7: string; readonly red8: string; readonly red9: string; readonly red10: string; readonly yellow1: string; readonly yellow2: string; readonly yellow3: string; readonly yellow4: string; readonly yellow5: string; readonly yellow6: string; readonly yellow7: string; readonly yellow8: string; readonly yellow9: string; readonly yellow10: string; }; export declare function useUtcOffset(): number; export declare function useMask(): RequiredMask; export declare type ConfigProviderProps = PropsWithChildren & { colors: PartialColors; }>; declare function ConfigProvider(props: ConfigProviderProps): React.JSX.Element; declare namespace ConfigProvider { var defaultProps: { /** class 前缀。所有的 icecream 组件 class 都会在此基础上拼接 */ prefix: string; /** 语言数据 */ langData: LangData; /** 颜色变量 */ colors: { readonly blue1: string; readonly blue2: string; readonly blue3: string; readonly blue4: string; readonly blue5: string; readonly blue6: string; readonly blue7: string; readonly blue8: string; readonly blue9: string; readonly blue10: string; readonly cobalt1: string; readonly cobalt2: string; readonly cobalt3: string; readonly cobalt4: string; readonly cobalt5: string; readonly cobalt6: string; readonly cobalt7: string; readonly cobalt8: string; readonly cobalt9: string; readonly cobalt10: string; readonly cyan1: string; readonly cyan2: string; readonly cyan3: string; readonly cyan4: string; readonly cyan5: string; readonly cyan6: string; readonly cyan7: string; readonly cyan8: string; readonly cyan9: string; readonly cyan10: string; readonly grey1: string; readonly grey2: string; readonly grey3: string; readonly grey4: string; readonly grey5: string; readonly grey6: string; readonly grey7: string; readonly grey8: string; readonly grey9: string; readonly grey10: string; readonly green1: string; readonly green2: string; readonly green3: string; readonly green4: string; readonly green5: string; readonly green6: string; readonly green7: string; readonly green8: string; readonly green9: string; readonly green10: string; readonly lemon1: string; readonly lemon2: string; readonly lemon3: string; readonly lemon4: string; readonly lemon5: string; readonly lemon6: string; readonly lemon7: string; readonly lemon8: string; readonly lemon9: string; readonly lemon10: string; readonly magenta1: string; readonly magenta2: string; readonly magenta3: string; readonly magenta4: string; readonly magenta5: string; readonly magenta6: string; readonly magenta7: string; readonly magenta8: string; readonly magenta9: string; readonly magenta10: string; readonly olivine1: string; readonly olivine2: string; readonly olivine3: string; readonly olivine4: string; readonly olivine5: string; readonly olivine6: string; readonly olivine7: string; readonly olivine8: string; readonly olivine9: string; readonly olivine10: string; readonly orange1: string; readonly orange2: string; readonly orange3: string; readonly orange4: string; readonly orange5: string; readonly orange6: string; readonly orange7: string; readonly orange8: string; readonly orange9: string; readonly orange10: string; readonly orangeRed1: string; readonly orangeRed2: string; readonly orangeRed3: string; readonly orangeRed4: string; readonly orangeRed5: string; readonly orangeRed6: string; readonly orangeRed7: string; readonly orangeRed8: string; readonly orangeRed9: string; readonly orangeRed10: string; readonly purple1: string; readonly purple2: string; readonly purple3: string; readonly purple4: string; readonly purple5: string; readonly purple6: string; readonly purple7: string; readonly purple8: string; readonly purple9: string; readonly purple10: string; readonly red1: string; readonly red2: string; readonly red3: string; readonly red4: string; readonly red5: string; readonly red6: string; readonly red7: string; readonly red8: string; readonly red9: string; readonly red10: string; readonly yellow1: string; readonly yellow2: string; readonly yellow3: string; readonly yellow4: string; readonly yellow5: string; readonly yellow6: string; readonly yellow7: string; readonly yellow8: string; readonly yellow9: string; readonly yellow10: string; }; /** 时间相关 */ time: Time; /** 遮罩相关 */ mask: Mask; }; } export default ConfigProvider;