export type ThemesType = {
    initialSelectedPalette?: keyof NCoreUIKit.PaletteKey;
    initialSelectedGapPropagation?: GapPropagationType;
    initialSelectedTheme?: keyof NCoreUIKit.ThemeKey;
    initialSelectedActiveSharpness?: SharpnessType;
    projectThemes?: NCoreUIKit.Palette;
};

export type PaletteType = "nibgat" | "nibgat-community" | "caycore";

export type GapPropagationType = "spacious" | "compact";

export type SharpnessType = "soft" | "sharp" | "rounded";

export type ThemeType = "light" | "dark";

export type ThemeContextStateType = Partial<ThemeContextType>;

export type ThemeConfigs = {
    headerSpace: number;
};

export type ThemeContextType = {
    paletteKeys: Array<keyof NCoreUIKit.PaletteKey>;
    themeKeys: Array<keyof NCoreUIKit.ThemeKey>;
    activePalette: keyof NCoreUIKit.PaletteKey;
    activeGapPropagation: GapPropagationType;
    activeTheme: keyof NCoreUIKit.ThemeKey;
    inlineSpaces: NCoreUIKit.InlineSpaces;
    typography: NCoreUIKit.Typography;
    activeSharpness: SharpnessType;
    colors: NCoreUIKit.ThemeTokens;
    radiuses: NCoreUIKit.Radiuses;
    borders: NCoreUIKit.Borders;
    spaces: NCoreUIKit.Spaces;
    configs: ThemeConfigs;
};
