import { DeepPartial } from "./helpers";
/**
 * Color pallete
 */
export interface IPalette {
    primary: string;
    primaryDark: string;
    primaryDeep: string;
    primaryLight: string;
    secondary: string;
    secondaryDark: string;
    secondaryDeep: string;
    error: string;
    errorDark: string;
    errorDeep: string;
    background: string;
    backgroundAlpha: string;
    element: string;
    elementDark: string;
    elementDarkNoAlpha: string;
    elementDeep: string;
    elementLight: string;
    elementOverlay: string;
    elementTransparent: string;
    textPrimary: string;
    textSecondary: string;
    textDisabled: string;
    textContrast: string;
    icon: string;
    iconAccent: string;
    iconDisabled: string;
    iconContrast: string;
    menuBackground: string;
    menuDefaultItem: string;
    menuActiveItem: string;
    menuActiveBackground: string;
    menuHoverItem: string;
    menuHoverBackground: string;
    panelBackground: string;
    devBackground: string;
    devBackgroundDark: string;
}
export interface IShadows {
    pressed: string;
    normal: string;
    normalExtra: string;
    raised: string;
    top: string;
}
export interface IBorderRadius {
    tiny: string;
    smallest: string;
    xSmall: string;
    small: string;
    medium: string;
    large: string;
    xLarge: string;
    xxLarge: string;
}
export interface IFonts {
    h1: string;
    h2: string;
    subtitle: string;
    standard: string;
    description: string;
    small: string;
    button: string;
    boldWeight: string;
}
export interface IVariants {
    basic: string;
    primary: string;
    secondary: string;
    error: string;
}
export interface IColorOrMono {
    basic: string;
    mono: string;
}
export interface IFlatButton {
    color: IVariants;
    disabledColor: string;
    disabledBackgroundColor: string;
    backgroundColor: string;
    hoverBackgroundColor: string;
    hoverColor: IVariants;
    activeColor: IVariants;
    activeBackgroundColor: string;
}
export interface IRaisedButton {
    color: IVariants;
    backgroundColor: IVariants;
    hoverBackgroundColor: IVariants;
    hoverColor: IVariants;
    activeBackgroundColor: IVariants;
    activeColor: IVariants;
    disabledColor: string;
    disabledBackgroundColor: string;
    boxShadow: string;
    activeBoxShadow: string;
}
export interface IRadio {
    circleBorderColor: string;
    circleHoverBackgroundColor: string;
    dotCheckedBackgroundColor: string;
    circleCheckedBorderColor: string;
    dotDisabledBackgroundColor: string;
    circleDisabledBorderColor: string;
    labelColor: string;
    labelDisabledColor: string;
}
export interface ILinearProgress {
    formBackgroundColor: string;
    fillBackgroundColor: IColorOrMono;
}
export interface ICircularProgress {
    formBackgroundColor: string;
    fillBackgroundColor: IColorOrMono;
}
export interface IMessageColors {
    error: string;
    warning: string;
    success: string;
    info: string;
}
export interface ILinkStates {
    primary: string;
    secondary: string;
    error: string;
}
export interface IMessage {
    color: IMessageColors;
    borderColor: IMessageColors;
    backgroundColor: IMessageColors;
}
export interface IIcon {
    color: IIconColors;
    disabledColor: string;
}
export interface IIconButton {
    color: IIconColors;
    hoverColor: IIconColors;
    activeColor: IIconColors;
    disabledColor: string;
}
export interface IIconColors {
    primary: string;
    secondary: string;
    error: string;
    basic: string;
}
export interface IThemeConstants {
    palette: IPalette;
    paletteDark?: Partial<IPalette>;
    shadows: IShadows;
    fonts: IFonts;
    borderRadius: IBorderRadius;
}
export interface IIconToggle {
    color: string;
    hoverColor: string;
    activeColor: string;
    disabledColor: string;
    selectedColor: IToggleStates;
    selectedHoverColor: IToggleStates;
    selectedActiveColor: IToggleStates;
    accentBackground: IToggleStates;
    accentHoverBackground: IToggleStates;
    accentActiveBackground: IToggleStates;
}
export interface ICheckbox {
    checkColor: string;
    boxBorder: string;
    boxBackground: string;
    color: string;
    hoverBoxBackground: string;
    disabledBoxBorder: string;
    disabledBoxBackground: string;
    disabledColor: string;
    selectedBoxBackground: string;
    selectedHoverBoxBackground: string;
    selectedDisabledBoxBackground: string;
}
export interface IBlank {
    backgroundColor: string;
}
export interface IInput {
    labelColor: string;
    borderColor: string;
    placeholderColor: string;
    color: string;
    helpColor: string;
    hoverBorderColor: string;
    disabledBorderColor: string;
    disabledLabelColor: string;
    disabledColor: string;
    disabledHelpColor: string;
    disabledPlaceholderColor: string;
    active: string;
    error: string;
}
export interface IDropdown {
    color: string;
    selectedBackgroundColor: string;
    hoverBackgroundColor: string;
    nullableColor: string;
}
export interface IElementsArea {
    backgroundColor: string;
    backgroundOverlayColor: string;
    cardOverlayColor: string;
}
export interface ILink {
    color: ILinkStates;
    hoverColor: ILinkStates;
    activeColor: ILinkStates;
    visitedColor: string;
}
export interface ICard {
    width: string;
    height: string;
    borderColor: string;
}
export interface INotification {
    backgroundColor: string;
    color: IMessageColors;
    closeButtonColor: string;
    descriptionColor: string;
}
export interface IDialog {
    backgroundColor: string;
    titleColor: string;
    titleBackgroundColor: IVariants;
    titleCustomColor: string;
}
export interface IDivider {
    color: string;
}
export interface IImageLoader {
    backgroundColor: string;
    uploadedImageHoverBackground: string;
}
export interface IRatioLine {
    backgroundColor: IVariants;
}
export interface ISwitcher {
    backgroundColorOn: IVariants;
    backgroundColorOff: string;
    disabledBackgroundColor: string;
    hoverBackgroundColorOn: IVariants;
    hoverBackgroundColorOff: string;
    activeBackgroundColorOn: IVariants;
    activeBackgroundColorOff: string;
    titleColor: string;
}
export interface IChip {
    backgroundColor: IVariants;
}
export interface ISlider {
    backgroundColor: IVariants;
    hoverBackgroundColor: IVariants;
    activeBackgroundColor: IVariants;
    defaultSubstrateBackgroundColor: string;
    hoverSubstrateBackgroundColor: string;
    disabledFillBandBackgroundColor: string;
    disabledUpperHandleLayerBackgroundColor: string;
    transparencyImageBackground: string;
    borderColor: string;
    handleDefaultBorderColor: string;
}
export interface IColorButton {
    background: string;
    borderColor: string;
}
export interface IColorPicker {
    borderColor: string;
    hoverBorderColor: string;
    activeBorderColor: string;
    errorBorderColor: string;
}
export interface IHueMap {
    borderColor: string;
    pointerBorderColor: string;
}
export interface ITheme extends IThemeConstants {
    flatButton: IFlatButton;
    raisedButton: IRaisedButton;
    radio: IRadio;
    circularProgress: ICircularProgress;
    linearProgress: ILinearProgress;
    message: IMessage;
    icon: IIcon;
    iconButton: IIconButton;
    iconToggle: IIconToggle;
    checkbox: ICheckbox;
    input: IInput;
    dropdown: IDropdown;
    elementsArea: IElementsArea;
    blank: IBlank;
    tab: ITab;
    card: ICard;
    link: ILink;
    notification: INotification;
    dialog: IDialog;
    divider: IDivider;
    imageLoader: IImageLoader;
    ratioLine: IRatioLine;
    switcher: ISwitcher;
    slider: ISlider;
    chip: IChip;
    colorButton: IColorButton;
    hueMap: IHueMap;
    colorPicker: IColorPicker;
}
export interface ITransition {
    decel: string;
    accel: string;
    upDown: string;
    hover: string;
    press: string;
    release: string;
    show: string;
    hide: string;
    toggle: string;
    collapse: string;
}
export interface IToggleStates {
    accent: string;
    standard: string;
    accentSecondary: string;
    accentError: string;
    standardSecondary: string;
    standardError: string;
}
export interface ITab {
    disabledColor: string;
    hoverColor: string;
    textColor: string;
    textSelectColor: string;
    tabBackground: string;
    containerBackground: string;
    lineBackground: string;
    lineSelected: string;
}
export declare type IPartialTheme = DeepPartial<ITheme>;
export declare type IPartialThemeConstants = DeepPartial<IThemeConstants>;
export declare type OverrideTheme = (constants: IThemeConstants) => IPartialTheme;
