import { Theme } from '@emotion/react';

declare enum TypographyGroup {
    Lightspark = "Lightspark",
    LightsparkDocs = "LightsparkDocs",
    UmaAuthSdk = "UmaAuthSdk",
    UmameDocs = "UmameDocs",
    Bridge = "Bridge",
    Nage = "Nage"
}
type TypographyTokenGroups = ReturnType<typeof getTypography>;
declare const LINE_HEIGHTS: {
    readonly Lightspark: {
        readonly "8xl": "72px";
        readonly "7xl": "72px";
        readonly "6xl": "60px";
        readonly "5xl": "44px";
        readonly "4xl": "40px";
        readonly "3xl": "36px";
        readonly "2xs": "14px";
        readonly "2xl": "32px";
        readonly lg: "24px";
        readonly md: "20px";
        readonly sm: "18px";
        readonly xl: "28px";
        readonly xs: "16px";
    };
    readonly LightsparkDocs: {
        readonly "8xl": "72px";
        readonly "7xl": "72px";
        readonly "6xl": "60px";
        readonly "5xl": "44px";
        readonly "4xl": "40px";
        readonly "3xl": "36px";
        readonly "2xs": "14px";
        readonly "2xl": "32px";
        readonly lg: "24px";
        readonly md: "20px";
        readonly sm: "18px";
        readonly xl: "28px";
        readonly xs: "16px";
    };
    readonly UmaAuthSdk: {
        readonly "8xl": "72px";
        readonly "7xl": "72px";
        readonly "6xl": "72px";
        readonly "5xl": "72px";
        readonly "4xl": "60px";
        readonly "3xl": "44px";
        readonly "2xs": "16px";
        readonly "2xl": "40px";
        readonly lg: "32px";
        readonly md: "28px";
        readonly sm: "24px";
        readonly xl: "36px";
        readonly xs: "20px";
    };
    readonly UmameDocs: {
        readonly "8xl": "72px";
        readonly "7xl": "72px";
        readonly "6xl": "72px";
        readonly "5xl": "72px";
        readonly "4xl": "60px";
        readonly "3xl": "44px";
        readonly "2xs": "16px";
        readonly "2xl": "40px";
        readonly lg: "32px";
        readonly md: "28px";
        readonly sm: "24px";
        readonly xl: "36px";
        readonly xs: "20px";
    };
    readonly Bridge: {
        readonly "8xl": "72px";
        readonly "7xl": "60px";
        readonly "6xl": "44px";
        readonly "5xl": "40px";
        readonly "4xl": "36px";
        readonly "3xl": "32px";
        readonly "2xs": "16px";
        readonly "2xl": "28px";
        readonly lg: "22px";
        readonly md: "20px";
        readonly sm: "18px";
        readonly xl: "24px";
        readonly xs: "16px";
    };
    readonly Nage: {
        readonly "8xl": "72px";
        readonly "7xl": "60px";
        readonly "6xl": "44px";
        readonly "5xl": "40px";
        readonly "4xl": "36px";
        readonly "3xl": "32px";
        readonly "3xs": "12px";
        readonly "2xs": "14px";
        readonly "2xl": "28px";
        readonly lg: "22px";
        readonly md: "20px";
        readonly sm: "18px";
        readonly xl: "24px";
        readonly xs: "16px";
    };
};
type LineHeightKey = keyof (typeof LINE_HEIGHTS)[TypographyGroup];
declare const lineHeightKeys: LineHeightKey[];
declare function getLineHeightFromKey(key: LineHeightKey, theme: Theme): "72px" | "60px" | "44px" | "40px" | "36px" | "14px" | "32px" | "24px" | "20px" | "18px" | "28px" | "16px" | "22px";
interface FontFamilies {
    main: string;
    code: string;
}
declare const TokenSize: {
    readonly Large: "Large";
    readonly Mlarge: "Mlarge";
    readonly Medium: "Medium";
    readonly Schmedium: "Schmedium";
    readonly Small: "Small";
    readonly ExtraSmall: "ExtraSmall";
};
type TokenSizeKey = (typeof TokenSize)[keyof typeof TokenSize];
declare const TypographyType: {
    readonly Display: "Display";
    readonly Headline: "Headline";
    readonly Title: "Title";
    readonly Body: "Body";
    readonly BodyStrong: "Body Strong";
    readonly Label: "Label";
    readonly LabelModerate: "Label Moderate";
    readonly LabelStrong: "Label Strong";
    readonly Overline: "Overline";
    readonly Code: "Code";
    readonly CodeStrong: "Code Strong";
    readonly Btn: "Btn";
};
type TypographyTypeKey = (typeof TypographyType)[keyof typeof TypographyType];
type TypographyTokens = {
    fontFamily: string;
    fontWeight: string;
    lineHeight: string;
    fontSize: string;
    letterSpacing: string;
    paragraphSpacing: string;
    paragraphIndent: string;
    textCase: string;
    textDecoration: string;
    fontFeatureSettings?: string;
};
declare function getTypography(typographyGroup: TypographyGroup, customFontFamilies?: FontFamilies): {
    group: TypographyGroup;
    fontFamilies: FontFamilies;
    lineHeights: {
        readonly "8xl": "72px";
        readonly "7xl": "72px";
        readonly "6xl": "60px";
        readonly "5xl": "44px";
        readonly "4xl": "40px";
        readonly "3xl": "36px";
        readonly "2xs": "14px";
        readonly "2xl": "32px";
        readonly lg: "24px";
        readonly md: "20px";
        readonly sm: "18px";
        readonly xl: "28px";
        readonly xs: "16px";
    } | {
        readonly "8xl": "72px";
        readonly "7xl": "72px";
        readonly "6xl": "60px";
        readonly "5xl": "44px";
        readonly "4xl": "40px";
        readonly "3xl": "36px";
        readonly "2xs": "14px";
        readonly "2xl": "32px";
        readonly lg: "24px";
        readonly md: "20px";
        readonly sm: "18px";
        readonly xl: "28px";
        readonly xs: "16px";
    } | {
        readonly "8xl": "72px";
        readonly "7xl": "72px";
        readonly "6xl": "72px";
        readonly "5xl": "72px";
        readonly "4xl": "60px";
        readonly "3xl": "44px";
        readonly "2xs": "16px";
        readonly "2xl": "40px";
        readonly lg: "32px";
        readonly md: "28px";
        readonly sm: "24px";
        readonly xl: "36px";
        readonly xs: "20px";
    } | {
        readonly "8xl": "72px";
        readonly "7xl": "72px";
        readonly "6xl": "72px";
        readonly "5xl": "72px";
        readonly "4xl": "60px";
        readonly "3xl": "44px";
        readonly "2xs": "16px";
        readonly "2xl": "40px";
        readonly lg: "32px";
        readonly md: "28px";
        readonly sm: "24px";
        readonly xl: "36px";
        readonly xs: "20px";
    } | {
        readonly "8xl": "72px";
        readonly "7xl": "60px";
        readonly "6xl": "44px";
        readonly "5xl": "40px";
        readonly "4xl": "36px";
        readonly "3xl": "32px";
        readonly "2xs": "16px";
        readonly "2xl": "28px";
        readonly lg: "22px";
        readonly md: "20px";
        readonly sm: "18px";
        readonly xl: "24px";
        readonly xs: "16px";
    } | {
        readonly "8xl": "72px";
        readonly "7xl": "60px";
        readonly "6xl": "44px";
        readonly "5xl": "40px";
        readonly "4xl": "36px";
        readonly "3xl": "32px";
        readonly "3xs": "12px";
        readonly "2xs": "14px";
        readonly "2xl": "28px";
        readonly lg: "22px";
        readonly md: "20px";
        readonly sm: "18px";
        readonly xl: "24px";
        readonly xs: "16px";
    };
    fontWeights: {
        main: {
            Black: number;
            ExtraBold: number;
            Bold: number;
            SemiBold: number;
            Medium: number;
            Book: number;
            Regular: number;
            Schmedium: number;
            Light: number;
            Thin: number;
            Hairline: number;
        };
        code: {
            Bold: number;
            Regular: number;
        };
    };
    fontSize: {
        "2xs": string;
        xs: string;
        sm: string;
        md: string;
        lg: string;
        xl: string;
        "2xl": string;
        "3xl": string;
        "4xl": string;
        "5xl": string;
        "6xl": string;
    } | {
        "2xs": string;
        xs: string;
        sm: string;
        md: string;
        lg: string;
        xl: string;
        "2xl": string;
        "3xl": string;
        "4xl": string;
        "5xl": string;
        "6xl": string;
    } | {
        "2xs": string;
        xs: string;
        sm: string;
        md: string;
        lg: string;
        xl: string;
        "2xl": string;
        "3xl": string;
        "4xl": string;
        "5xl": string;
        "6xl": string;
    } | {
        "2xs": string;
        xs: string;
        sm: string;
        md: string;
        lg: string;
        xl: string;
        "2xl": string;
        "3xl": string;
        "4xl": string;
        "5xl": string;
        "6xl": string;
    } | {
        "2xs": string;
        xs: string;
        md: string;
        lg: string;
        xl: string;
        "2xl": string;
        "3xl": string;
        "4xl": string;
        "5xl": string;
        "6xl": string;
        "7xl": string;
    } | {
        "2xs": string;
        xs: string;
        md: string;
        lg: string;
        xl: string;
        "2xl": string;
        "3xl": string;
        "4xl": string;
        "5xl": string;
        "6xl": string;
        "7xl": string;
    };
    letterSpacing: {
        "tight-max": string;
        "tight-high": string;
        "tight-medium": string;
        "tight-low": string;
        normal: string;
        "loose-max": string;
    } | {
        "tight-max": string;
        "tight-high": string;
        "tight-medium": string;
        "tight-low": string;
        normal: string;
        "loose-max": string;
    } | {
        tight: string;
        normal: string;
        loose: string;
    } | {
        tight: string;
        normal: string;
        loose: string;
    } | {
        tight: string;
        normal: string;
        wide: string;
    } | {
        tighter: string;
        tight: string;
        normal: string;
        wide: string;
        wider: string;
    };
    textCase: {
        none: string;
        uppercase: string;
    };
    textDecoration: {
        none: string;
    };
    paragraphIndent: {
        0: string;
    };
    paragraphSpacing: {
        default: string;
        0: string;
        16: string;
        40: string;
    };
    types: {
        Mobile: { [key in TypographyTypeKey]?: { [key_1 in TokenSizeKey]?: TypographyTokens; }; };
        Desktop: { [key in TypographyTypeKey]?: { [key_1 in TokenSizeKey]?: TypographyTokens; }; };
    };
};
declare const getTypographyString: (theme: Theme, typographyType: TypographyTypeKey, size: TokenSizeKey) => string;
declare function getLineHeightForTypographyType(type: TypographyTypeKey, size: TokenSizeKey, theme: Theme): string;
declare function getLineHeightNumberForTypographyType(type: TypographyTypeKey, size: TokenSizeKey, theme: Theme): number;

export { type FontFamilies, type LineHeightKey, TokenSize, type TokenSizeKey, TypographyGroup, type TypographyTokenGroups, TypographyType, type TypographyTypeKey, getLineHeightForTypographyType, getLineHeightFromKey, getLineHeightNumberForTypographyType, getTypography, getTypographyString, lineHeightKeys };
