import {
    type ViewStyle,
    type StyleProp,
    type TextStyle
} from "react-native";
import type {
    NCoreUIKitIcon
} from "../../types";
import type IButtonProps from "../button/type";

export type StateCardDynamicStyleType = {
    spaces: NCoreUIKit.ActivePalette["spaces"];
};

export type StateCardTypes = {
    containerColor: keyof NCoreUIKit.ContainerContentColors;
    subTitleColor: keyof NCoreUIKit.TextContentColors;
    titleColor: keyof NCoreUIKit.TextContentColors;
    iconColor: keyof NCoreUIKit.IconContentColors;
};

export type StateCardTypeConstantType = {
    type: StateCardType;
};

export type StateCardType = "primary" | "danger" | "warning" | "neutral" | "success" | "info";

interface IStateCardProps {
    subTitleStyle?: StyleProp<TextStyle>[] | StyleProp<TextStyle>;
    titleStyle?: StyleProp<TextStyle>[] | StyleProp<TextStyle>;
    customTheme?: {
        gapPropagation?: keyof NCoreUIKit.GapPropagationKey;
        sharpness?: keyof NCoreUIKit.SharpnessKey;
        paletteKey?: keyof NCoreUIKit.PaletteKey;
        themeKey?: keyof NCoreUIKit.ThemeKey;
    };
    style?: StyleProp<ViewStyle>[] | StyleProp<ViewStyle>;
    action?: IButtonProps;
    icon?: NCoreUIKitIcon;
    type?: StateCardType;
    iconSize?: number;
    subTitle?: string;
    title?: string;
}
export type {
    IStateCardProps as default
};
