import { CSSProperties as ReactCSSProperties } from 'react';
import { StyleProperty, CSSProperties } from '@equinor/fusion-web-theme';
export interface StyleCSSProperties extends ReactCSSProperties {
    [k: string]: unknown | CSSProperties | ReactCSSProperties | StyleProperty;
}
export type BaseCreateCSSProperties<Props extends Record<string, unknown> = Record<string, unknown>> = {
    [P in keyof CSSProperties]: CSSProperties[P] | ReactCSSProperties[P] | PropsFunc<Props, CSSProperties[P]> | PropsFunc<Props, ReactCSSProperties[P]>;
};
export interface CreateCSSProperties<Props extends Record<string, unknown> = Record<string, unknown>> extends BaseCreateCSSProperties<Props> {
    [k: string]: BaseCreateCSSProperties<Props>[keyof BaseCreateCSSProperties<Props>] | CreateCSSProperties<Props>;
}
export type PropsFunc<Props extends Record<string, unknown>, T> = (props: Props) => T;
/**
 * Same as material but only with fusion defined/imported CSSProperties, typescript mismatch
 */
export type StyleRules<Props extends Record<string, unknown> = Record<string, unknown>, ClassKey extends string = string> = Record<ClassKey, CSSProperties | ReactCSSProperties | CreateCSSProperties<Props> | PropsFunc<Props, CreateCSSProperties<Props>>>;
export type StyleRulesCallback<Theme, Props extends Record<string, unknown>, ClassKey extends string = string> = (theme: Theme) => StyleRules<Props, ClassKey>;
export type Styles<Theme, Props extends Record<string, unknown>, ClassKey extends string = string> = StyleRules<Props, ClassKey> | StyleRulesCallback<Theme, Props, ClassKey>;
//# sourceMappingURL=types.d.ts.map