/**
 * This file is part of the NocoBase (R) project.
 * Copyright (c) 2020-2024 NocoBase Co., Ltd.
 * Authors: NocoBase Team.
 *
 * This project is dual-licensed under AGPL-3.0 and NocoBase Commercial License.
 * For more information, please refer to: https://www.nocobase.com/agreement.
 */
import type { CSSInterpolation, CSSObject } from '@ant-design/cssinjs';
import { useStyleRegister } from '@ant-design/cssinjs';
import type { ComponentTokenMap, GlobalToken } from 'antd/es/theme/interface';
import type { CustomToken } from '@nocobase/client-v2';
export type OverrideComponent = keyof ComponentTokenMap | string;
export interface StyleInfo {
    hashId: string;
    prefixCls: string;
    rootPrefixCls: string;
    iconPrefixCls: string;
}
export type TokenWithCommonCls<T> = T & {
    /** Wrap component class with `.` prefix */
    componentCls: string;
    /** Origin prefix which do not have `.` prefix */
    prefixCls: string;
    /** Wrap icon class with `.` prefix */
    iconCls: string;
    /** Wrap ant prefixCls class with `.` prefix */
    antCls: string;
};
export type GenerateStyle<ComponentToken extends object = TokenWithCommonCls<GlobalToken>, ReturnType = CSSInterpolation> = (token: ComponentToken, options?: any) => ReturnType;
export declare const genCommonStyle: (token: any, componentPrefixCls: string) => CSSObject;
export type UseComponentStyleResult = {
    wrapSSR: ReturnType<typeof useStyleRegister>;
    hashId: string;
    componentCls: string;
    rootPrefixCls: string;
};
export declare const genStyleHook: <ComponentName extends string>(component: ComponentName, styleFn: (token: TokenWithCommonCls<CustomToken>, props: any, info: StyleInfo) => CSSInterpolation) => (props?: any) => UseComponentStyleResult;
