import { CSSProperties } from 'react';
export interface StoredTheme extends Theme {
}
export declare type Theme = {
    /**
     * @deprecated This property is should no longer be used. Use `charts.colors`.
     */
    colors?: CSSProperties['color'][];
    detail?: 'minimal' | 'verbose';
    fontFamily?: string;
    fontSize?: number | string;
    rowLimit?: number;
    cellLimit?: number;
    version?: ThemeVersion;
};
export declare namespace VizzlyTheming {
    interface Base extends Theme {
        accordion?: Accordion;
        ai?: AI;
        alerts?: Alerts;
        baseFont?: FontStyle;
        buttons?: Buttons;
        charts?: Charts;
        dashboard?: Dashboard;
        dropdowns?: Dropdown;
        editor?: {
            settings?: Panel;
            component?: Panel;
            gap?: CSSProperties['gap'];
        };
        filters?: Filters;
        forms?: Form;
        header?: Header;
        icons?: Icons;
        library?: Library;
        lists?: List;
        modals?: Modal;
        panels?: Panel;
        popoverMenu?: PopoverMenu;
        radioGroup?: RadioGroup;
        search?: Search;
        section?: {
            panel?: Panel;
            title?: FontStyle;
        };
        tables?: Tables;
        tabs?: Tabs;
        titles?: FontStyle;
        tooltips?: Tooltip;
        chips?: Chips;
    }
    interface Buttons {
        primary?: ButtonType;
        secondary?: ButtonType;
        add?: AddButton;
        /**
         * @deprecated This style of action is no longer being used
         */
        grid?: GridButtons;
    }
    interface ButtonType extends ButtonState {
        padding?: CSSProperties['padding'];
        fontWeight?: CSSProperties['fontWeight'];
        fontFamily?: CSSProperties['fontFamily'];
        '-webkitFontSmoothing'?: CSSProperties['WebkitFontSmoothing'];
        '-mozOsxFontSmoothing'?: CSSProperties['MozOsxFontSmoothing'];
        textShadow?: CSSProperties['textShadow'];
        boxShadow?: CSSProperties['boxShadow'];
        borderRadius?: CSSProperties['borderRadius'];
        fontSize?: CSSProperties['fontSize'];
        height?: CSSProperties['height'];
        narrowPadding?: CSSProperties['padding'];
        '&:hover'?: ButtonState & {
            opacity?: CSSProperties['opacity'];
        };
        '&:disabled'?: ButtonState & {
            opacity?: CSSProperties['opacity'];
        };
        '&:hover:disabled'?: ButtonState & {
            opacity?: CSSProperties['opacity'];
        };
    }
    type ButtonSize = {
        fontWeight?: CSSProperties['fontWeight'];
        padding?: CSSProperties['padding'];
        fontSize?: CSSProperties['fontSize'];
        height?: CSSProperties['height'];
    };
    type ButtonState = {
        background?: CSSProperties['background'];
        color?: CSSProperties['color'];
        border?: CSSProperties['border'];
        borderRadius?: CSSProperties['borderRadius'];
        fontWeight?: CSSProperties['fontWeight'];
        boxShadow?: CSSProperties['boxShadow'];
    };
    type AddButton = {
        background?: CSSProperties['background'];
        border?: CSSProperties['border'];
        boxShadow?: CSSProperties['boxShadow'];
        borderRadius?: CSSProperties['borderRadius'];
        color?: CSSProperties['color'];
        '&:hover'?: {
            background?: CSSProperties['background'];
            border?: CSSProperties['border'];
            boxShadow?: CSSProperties['boxShadow'];
            color?: CSSProperties['color'];
        };
        small?: AddButtonTypes;
        medium?: AddButtonTypes;
        large?: AddButtonTypes;
    };
    type AddButtonTypes = {
        fontWeight?: CSSProperties['fontWeight'];
        padding?: CSSProperties['padding'];
        fontSize?: CSSProperties['fontSize'];
    };
    type GridButtons = {
        selected?: GridButton;
        unselected?: GridButton;
    };
    type GridButton = {
        background?: CSSProperties['background'];
        border?: CSSProperties['border'];
        boxShadow?: CSSProperties['boxShadow'];
        borderRadius?: CSSProperties['borderRadius'];
        fontWeight?: CSSProperties['fontWeight'];
        fontSize?: CSSProperties['fontSize'];
        color?: CSSProperties['color'];
        '&:hover'?: {
            background?: CSSProperties['background'];
            border?: CSSProperties['border'];
            boxShadow?: CSSProperties['boxShadow'];
            color?: CSSProperties['color'];
        };
    };
    type Panel = {
        border?: CSSProperties['border'];
        background?: CSSProperties['background'];
        boxShadow?: CSSProperties['boxShadow'];
        borderRadius?: CSSProperties['borderRadius'];
        padding?: CSSProperties['padding'];
    };
    type Form = {
        label?: Label;
        input?: Input;
        select?: Select;
        dateTime?: DateTime;
    };
    interface Label extends FontStyle {
    }
    interface Input extends InputStyle, InputState {
        '&:focus'?: InputState;
        '&:hover'?: InputState;
        '&:focus:hover'?: InputState;
        active?: InputState & {
            '&:focus'?: InputState;
            '&:hover'?: InputState;
            '&:focus:hover'?: InputState;
        };
    }
    type InputStyle = {
        padding?: CSSProperties['padding'];
        fontSize?: CSSProperties['fontSize'];
        borderRadius?: CSSProperties['borderRadius'];
        fontWeight?: CSSProperties['fontWeight'];
        color?: CSSProperties['color'];
    };
    interface Select extends Input {
        indicatorColor?: CSSProperties['color'];
    }
    type InputState = {
        border?: CSSProperties['border'];
        boxShadow?: CSSProperties['boxShadow'];
        background?: CSSProperties['background'];
    };
    interface DateTime {
        input?: DateTimeInput;
        date?: {
            width?: CSSProperties['width'];
        };
        time?: {
            width?: CSSProperties['width'];
        };
        calendar?: Calendar;
        indicatorColor?: CSSProperties['color'];
    }
    interface DateTimeInput extends Input {
    }
    interface Calendar {
        title?: FontStyle;
        selected?: CalendarState;
        unselected?: CalendarState & {
            '&:hover'?: CalendarState;
        };
        arrows?: {
            background?: CSSProperties['background'];
            fill?: CSSProperties['fill'];
            borderRadius?: string;
            border?: string;
            '&:hover'?: {
                background?: CSSProperties['background'];
                border?: string;
            };
        };
    }
    interface CalendarState {
        color?: CSSProperties['color'];
        background?: CSSProperties['background'];
        border?: CSSProperties['border'];
    }
    type Modal = {
        overlay?: Overlay;
        base?: ModalBase;
        content?: ModalContent;
        header?: ModalHeader;
        footer?: ModalFooter;
        options?: ModalOptions;
    };
    type ModalOptions = {
        disableOutsideClick?: boolean;
        /** By default this property is set to "outside" */
        closeButton?: 'none' | 'outside' | 'inside';
        showTitle?: {
            editor?: boolean;
            library?: boolean;
        };
    };
    type ModalBase = {
        color?: CSSProperties['color'];
        background?: CSSProperties['background'];
        border?: CSSProperties['border'];
        boxShadow?: CSSProperties['boxShadow'];
        borderRadius?: CSSProperties['borderRadius'];
        zIndex?: CSSProperties['zIndex'];
    };
    type ModalContent = {
        background?: CSSProperties['background'];
        fontWeight?: CSSProperties['fontWeight'];
        fontSize?: CSSProperties['fontSize'];
        padding?: CSSProperties['padding'];
        alternativeBackground?: CSSProperties['background'];
    };
    type ModalHeader = {
        background?: CSSProperties['background'];
        padding?: CSSProperties['padding'];
        borderBottom?: CSSProperties['borderTop'];
        fontSize?: CSSProperties['fontSize'];
        fontWeight?: CSSProperties['fontWeight'];
    };
    type ModalFooter = {
        background?: CSSProperties['background'];
        borderTop?: CSSProperties['borderTop'];
        padding?: CSSProperties['padding'];
        borderRadius?: CSSProperties['borderRadius'];
    };
    type Overlay = {
        background?: CSSProperties['background'];
        opacity?: CSSProperties['opacity'];
    };
    interface List extends Panel {
        title?: FontStyle;
        subTitle?: ListSubTitle;
        fontSize?: CSSProperties['fontSize'];
        color?: CSSProperties['color'];
        icon?: ListIcon;
        select?: ListSelect;
        row?: ListRow;
    }
    type ListSubTitle = FontStyle & {
        textTransform?: CSSProperties['textTransform'];
        borderBottom?: CSSProperties['borderBottom'];
    };
    type ListIcon = {
        color?: CSSProperties['color'];
        background?: CSSProperties['background'];
        border?: CSSProperties['border'];
    };
    type ListSelect = {
        padding?: CSSProperties['padding'];
        fontSize?: CSSProperties['fontSize'];
        fontWeight?: CSSProperties['fontWeight'];
        color?: CSSProperties['color'];
        '&:hover'?: {
            background?: CSSProperties['background'];
        };
    };
    type ListRow = {
        padding?: CSSProperties['padding'];
    };
    interface Dropdown {
        background?: CSSProperties['background'];
        color?: CSSProperties['color'];
        border?: CSSProperties['border'];
        boxShadow?: CSSProperties['boxShadow'];
        fontSize?: CSSProperties['fontSize'];
        fontWeight?: CSSProperties['fontWeight'];
        separatorBorder?: CSSProperties['borderBottom'];
        selected?: Option;
        borderRadius?: CSSProperties['borderRadius'];
        padding?: CSSProperties['padding'];
        '&:hover'?: Option;
    }
    type Option = {
        background?: CSSProperties['background'];
        fontWeight?: CSSProperties['fontWeight'];
        color?: CSSProperties['color'];
    };
    type FontStyle = {
        lineHeight?: CSSProperties['lineHeight'];
        color?: CSSProperties['color'];
        fontFamily?: CSSProperties['fontFamily'];
        fontSize?: CSSProperties['fontSize'];
        fontWeight?: CSSProperties['fontWeight'];
        margin?: CSSProperties['margin'];
    };
    interface PopoverMenu extends Omit<Dropdown, 'selected'> {
    }
    type Tabs = {
        borderBottom?: CSSProperties['borderBottom'];
        selected?: TabButton;
        unselected?: TabButton;
    };
    interface TabButton extends VizzlyTheming.ButtonType {
        borderBottom?: CSSProperties['borderBottom'];
        borderTop?: CSSProperties['borderTop'];
        borderRight?: CSSProperties['borderRight'];
        borderLeft?: CSSProperties['borderLeft'];
    }
    type Alerts = {
        padding?: CSSProperties['padding'];
        borderRadius?: CSSProperties['borderRadius'];
        title?: FontStyle & {
            display?: CSSProperties['display'];
            width?: CSSProperties['width'];
        };
        content?: FontStyle & {
            display?: CSSProperties['display'];
            width?: CSSProperties['width'];
        };
        info?: AlertType;
        warning?: AlertType;
        critical?: AlertType;
        guidance?: AlertType;
    };
    type AlertType = {
        background?: CSSProperties['background'];
        border?: CSSProperties['border'];
        color?: CSSProperties['color'];
        iconColor?: CSSProperties['fill'];
        borderRadius?: CSSProperties['borderRadius'];
    };
    type Charts = {
        colors?: CSSProperties['color'][];
        title?: ViewText;
        subject?: ViewText;
        iconColor?: CSSProperties['fill'];
        labels?: ChartLabels;
        dataLabels?: ChartLabels;
        axisTitles?: ChartAxisTitle;
        grid?: ChartGrid;
        axis?: ChartAxis;
        pie?: Pie;
        line?: LineChart;
        barChart?: BarChart;
        singleStat?: SingleStat;
        threshold?: ChartThreshold;
        popoverMenus?: ChartPopoverMenu;
        legend?: ViewText;
    };
    interface ChartPopoverMenu {
        background?: CSSProperties['background'];
        border?: CSSProperties['border'];
        borderRadius?: CSSProperties['borderRadius'];
        boxShadow?: CSSProperties['boxShadow'];
        color?: CSSProperties['color'];
        fontFamily?: CSSProperties['fontFamily'];
        letterSpacing?: CSSProperties['letterSpacing'];
        padding?: CSSProperties['padding'];
    }
    type ChartThreshold = {
        stroke: CSSProperties['stroke'];
    };
    interface ViewText extends FontStyle {
        textAlign?: CSSProperties['textAlign'];
    }
    type ChartLabels = {
        color?: CSSProperties['fill'];
        fontWeight?: CSSProperties['fontWeight'];
        fontSize?: CSSProperties['fontSize'];
        fontFamily?: CSSProperties['fontFamily'];
    };
    type ChartAxisTitle = {
        color?: CSSProperties['fill'];
        fontWeight?: CSSProperties['fontWeight'];
        fontSize?: CSSProperties['fontSize'];
        fontFamily?: CSSProperties['fontFamily'];
    };
    type ChartGrid = {
        stroke: CSSProperties['stroke'];
    };
    type ChartAxis = {
        stroke: CSSProperties['stroke'];
    };
    type Tables = {
        th?: TableTH;
        body?: TableBody;
    };
    interface TableTH extends Omit<TableCell, 'borderLeft'> {
        fontWeight?: CSSProperties['fontWeight'];
        color?: CSSProperties['color'];
        background?: CSSProperties['background'];
        borderTop?: CSSProperties['borderTop'];
        textTransform?: CSSProperties['textTransform'];
        /**
         * @deprecated TH padding has moved to tables.th.button.padding and tables.th.sort.padding
         */
        padding?: CSSProperties['padding'];
        inner?: TableTHInner;
        first?: TableTHFirst;
        last?: TableTHLast;
        '&:hover'?: {
            color?: CSSProperties['color'];
            background?: CSSProperties['background'];
        };
        button?: TableTHButton;
        sort?: TableTHButton;
        group?: {
            textTransform?: CSSProperties['textTransform'];
            fontWeight?: CSSProperties['fontWeight'];
            fontSize?: CSSProperties['fontSize'];
        };
        column?: {
            background?: CSSProperties['background'];
            color?: CSSProperties['color'];
            padding?: CSSProperties['padding'];
            borderRight?: CSSProperties['borderBottom'];
            borderLeft?: CSSProperties['borderLeft'];
        };
        row?: {
            padding?: CSSProperties['padding'];
            borderBottom?: CSSProperties['borderBottom'];
            borderLeft?: CSSProperties['borderLeft'];
            borderRight?: CSSProperties['borderRight'];
        };
        level?: {
            2: {
                background?: CSSProperties['background'];
            };
        };
    }
    interface TableTHButton {
        fontSize?: CSSProperties['fontSize'];
        color?: CSSProperties['color'];
        background?: CSSProperties['background'];
        padding?: CSSProperties['padding'];
        borderRadius?: CSSProperties['borderRadius'];
        '&:hover'?: {
            color?: CSSProperties['color'];
            background?: CSSProperties['background'];
        };
    }
    type TableTHFirst = {
        borderLeft: CSSProperties['borderLeft'];
    };
    type TableTHLast = {
        borderRight: CSSProperties['borderRight'];
    };
    type TableTHInner = {
        borderBottomWidth?: CSSProperties['borderBottomWidth'];
        borderRight?: boolean;
        padding?: CSSProperties['padding'];
    };
    type TableBody = {
        borderLeft?: CSSProperties['borderLeft'];
        borderRight?: CSSProperties['borderRight'];
        cells?: TableCell;
        odd?: TableRowsStripes;
        even?: TableRowsStripes;
        drilldown?: {
            arrow?: {
                stroke?: CSSProperties['stroke'];
            };
        };
    };
    type TableRowsStripes = {
        background?: CSSProperties['background'];
        color?: CSSProperties['color'];
        '&:hover'?: {
            color?: CSSProperties['color'];
            background?: CSSProperties['background'];
        };
    };
    type TableCell = {
        borderBottom?: CSSProperties['borderBottom'];
        borderLeft?: CSSProperties['borderLeft'];
        borderRight?: CSSProperties['borderRight'];
        fontSize?: CSSProperties['fontSize'];
        padding?: CSSProperties['padding'];
    };
    type Dashboard = {
        borderRadius?: CSSProperties['borderRadius'];
        borderWidth?: CSSProperties['borderWidth'];
        borderColor?: CSSProperties['borderColor'];
        borderStyle?: CSSProperties['borderStyle'];
        icon?: DashboardIcons;
    };
    type DashboardIcons = {
        color?: CSSProperties['color'];
        background?: CSSProperties['background'];
        borderRadius?: CSSProperties['borderRadius'];
        padding?: CSSProperties['padding'];
        '&:disabled'?: {
            color?: CSSProperties['color'];
            background?: CSSProperties['background'];
        };
        '&:hover'?: {
            color?: CSSProperties['color'];
            background?: CSSProperties['background'];
        };
    };
    type Accordion = {
        button?: AccordionButton;
        iconColor?: CSSProperties['color'];
    };
    type AccordionButton = {
        color?: CSSProperties['color'];
        fontSize?: CSSProperties['fontSize'];
        fontWeight?: CSSProperties['fontWeight'];
    };
    type RadioGroup = {
        label?: RadioGroupFont;
        description?: RadioGroupFont;
    };
    type RadioGroupFont = {
        color?: CSSProperties['color'];
        fontSize?: CSSProperties['fontSize'];
        fontWeight?: CSSProperties['fontWeight'];
    };
    interface Search extends VizzlyTheming.InputStyle {
        border?: CSSProperties['border'];
        background?: CSSProperties['background'];
        color?: CSSProperties['color'];
        height?: CSSProperties['height'];
        '&:hover'?: {
            background?: CSSProperties['background'];
            boxShadow?: CSSProperties['boxShadow'];
        };
        '&:focus'?: {
            boxShadow?: CSSProperties['boxShadow'];
        };
        icons?: {
            color?: CSSProperties['color'];
        };
    }
    type Library = {
        /**
         * @deprecated This property is no longer used. Update modals.content.alternativeBackground.
         */
        background?: CSSProperties['background'];
        verified?: {
            color?: CSSProperties['color'];
        };
    };
    type Filters = {
        filterBy?: VizzlyTheming.ButtonType & {
            lineHeight?: CSSProperties['lineHeight'];
        };
    };
    type Header = {
        borderTop?: CSSProperties['borderTop'];
        borderBottom?: CSSProperties['borderBottom'];
        background?: CSSProperties['background'];
        title?: FontStyle & {
            htmlElement?: 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6' | 'p' | 'span';
        };
        padding?: CSSProperties['padding'];
        textAlign?: CSSProperties['textAlign'];
    };
    type AI = {
        suggestions?: {
            padding?: CSSProperties['padding'];
            borderRadius?: CSSProperties['borderRadius'];
            background?: CSSProperties['background'];
            color?: CSSProperties['color'];
            border?: CSSProperties['border'];
            '&:hover'?: {
                background?: CSSProperties['background'];
                color?: CSSProperties['color'];
                border?: CSSProperties['border'];
            };
        };
        avatar?: {
            color?: CSSProperties['color'];
            background?: CSSProperties['color'];
            border?: CSSProperties['border'];
        };
    };
    type Icons = {
        borderRadius?: CSSProperties['borderRadius'];
        color?: CSSProperties['color'];
        padding?: CSSProperties['padding'];
        width?: CSSProperties['width'];
        height?: CSSProperties['height'];
        '&:hover'?: {
            color?: CSSProperties['color'];
            background?: CSSProperties['background'];
        };
    };
    type Pie = {
        cornerRadius?: number;
        gap?: boolean;
        hole?: boolean;
    };
    type LineChart = {
        opacity?: number;
    };
    type BarChart = {
        cornerRadius?: number;
    };
    type SingleStat = {
        delteStyle?: 'pill' | 'text';
    };
    type Tooltip = {
        background?: CSSProperties['background'];
        borderRadius?: CSSProperties['borderRadius'];
        boxShadow?: CSSProperties['boxShadow'];
        color?: CSSProperties['color'];
        fontFamily?: CSSProperties['fontFamily'];
        fontSize?: CSSProperties['fontSize'];
        fontWeight?: CSSProperties['fontWeight'];
        letterSpacing?: CSSProperties['letterSpacing'];
        lineHeight?: CSSProperties['lineHeight'];
        padding?: CSSProperties['padding'];
    };
    type Chips = {
        background?: CSSProperties['background'];
        borderRadius?: CSSProperties['borderRadius'];
        color?: CSSProperties['color'];
        fontSize?: CSSProperties['fontSize'];
        fontWeight?: CSSProperties['fontWeight'];
    };
}
export declare type ThemeVersion = 1 | 2;
