import { ElementType, CSSProperties as CSSProperties$1 } from 'react';
import { Properties, AtRule } from 'csstype';
import { Breakpoint } from '@mui/system/createTheme/createBreakpoints';
import { T as TypeText } from './types-1693a3d6.js';
import { a as ComponentPropsWithoutRef, O as OverridableStringUnion } from './types-5e5b88b2.js';

interface VariantOverrides {
}
type TypographyProps<V extends Variant = Variant, Component extends ElementType = ElementType> = {
    className?: string;
    color?: keyof TypeText;
    component?: Component;
    fontWeight?: CSSProperties$1["fontWeight"];
    variant?: V | Pick<Record<Breakpoint, V>, any>;
} & ComponentPropsWithoutRef<Component>;
interface TypographyClasses {
    colorButton: string;
    colorDisabled: string;
    colorInherit: string;
    colorPrimary: string;
    colorSecondary: string;
    colorSubText: string;
    colorTertiary: string;
    root: string;
    variantBody1: string;
    variantBody2: string;
    variantH1: string;
    variantH2: string;
    variantH3: string;
    variantH4: string;
    variantH5: string;
    variantH6: string;
    variantInput1: string;
    variantMono1: string;
    variantMono2: string;
    variantMono3: string;
    variantSubtitle1: string;
    variantSubtitle2: string;
    variantSubtitle3: string;
}

type Variant = "h1" | "h2" | "h3" | "h4" | "h5" | "h6" | "input1" | "body2" | "body1" | "mono3" | "mono2" | "mono1" | "subtitle3" | "subtitle2" | "subtitle1";
type FontStyle = Required<{
    fontFamily: CSSProperties$1["fontFamily"];
    fontSize: number;
    fontWeightBold: CSSProperties$1["fontWeight"];
    fontWeightLight: CSSProperties$1["fontWeight"];
    fontWeightMedium: CSSProperties$1["fontWeight"];
    fontWeightRegular: CSSProperties$1["fontWeight"];
    htmlFontSize: number;
}>;
type NormalCssProperties = Properties<number | string>;
type Fontface = AtRule.FontFace & {
    fallbacks?: AtRule.FontFace[];
};
interface BaseCSSProperties extends NormalCssProperties {
    "@font-face"?: Fontface | Fontface[];
}
interface CSSProperties extends BaseCSSProperties {
    [k: string]: unknown | CSSProperties;
}
interface FontStyleOptions extends Partial<FontStyle> {
    allVariants?: CSSProperties$1;
}
type TypographyStyle = CSSProperties;
type TypographyStyleOptions = TypographyStyle;
interface TypographyUtils {
    pxToRem: (px: number) => string;
}
interface Typography extends Record<OverridableStringUnion<Variant, VariantOverrides>, TypographyStyle>, FontStyle, TypographyUtils {
}
type TypographyOptions = Partial<Record<OverridableStringUnion<Variant, VariantOverrides>, TypographyStyleOptions> & FontStyleOptions & TypographyUtils>;

export { TypographyProps as T, VariantOverrides as V, TypographyClasses as a, Variant as b, TypographyOptions as c, Typography as d };
