import { NumberField, TextField } from '@sentecacommerce-theme/base';
export declare enum ScreenKeysEnum {
    default = "default",
    sm = "sm",
    md = "md",
    lg = "lg",
    xl = "xl",
    xxl = "xxl"
}
export declare enum ButtonSizesEnum {
    xs = "xs",
    sm = "sm",
    md = "md",
    reg = "reg",
    lg = "lg",
    xl = "xl",
    xxl = "xxl"
}
export declare type ScreenGroupField<T> = {
    screen: ScreenKeysEnum;
} & T;
export declare type ButtonField<T> = {
    key: TextField;
    fontKey?: TextField;
    backgroundColor: T;
    textColor: T;
    borderColor: T;
    minWidth: NumberField;
    paddingX: NumberField;
    paddingY: NumberField;
    minHeight: NumberField;
    borderRadius: TextField;
    opacity?: NumberField;
    focusBoxShadowColor?: T;
    borderWidth: NumberField;
    hover?: {
        backgroundColor?: T;
        textColor?: T;
        borderColor?: T;
        opacity?: NumberField;
        boxShadow?: T;
    };
    sizes?: {
        sizeKey: ButtonSizesEnum;
        fontKey?: TextField;
        minWidth: NumberField;
        minHeight: NumberField;
        paddingY: NumberField;
        paddingX: NumberField;
    }[];
};
export declare type FontField = {
    key: TextField;
    size: NumberField;
    lineHeight: TextField;
    weight: TextField;
    familyName: TextField;
    tags: TextField[];
};
export interface TailwindStylesConfig<ColorEnum, ColorsObject> {
    colors: ColorsObject;
    screens: {
        [key in ScreenKeysEnum]: {
            min: NumberField;
            max?: NumberField;
        };
    };
    fontFamilies: {
        name: TextField;
        fallback: TextField;
        weight: TextField;
        woff: TextField;
        woff2: TextField;
        eot?: TextField;
        ttf?: TextField;
        svg?: TextField;
    }[];
    fonts: FontField[];
    defaultFont: ScreenGroupField<{
        fontKey: TextField;
    }>[];
    buttons: ButtonField<ColorEnum>[];
    forms?: {
        inputStyle: {
            borderColor: ColorEnum;
            textColor: ColorEnum;
            fontKey: TextField;
            height: NumberField;
            borderRadius: TextField;
            paddingX: NumberField;
            paddingY: NumberField;
            focus: {
                textColor: ColorEnum;
                borderColor: ColorEnum;
            };
            hover: {
                textColor: ColorEnum;
                borderColor: ColorEnum;
            };
        };
    };
    spaceBetweenSections: ScreenGroupField<{
        space: NumberField;
    }>[];
    containerSizes: ScreenGroupField<{
        maxWidth: NumberField;
        paddingX: NumberField;
    }>[];
    bodyBackground: ColorEnum;
}
