import * as Redux from 'redux';
import { ThemeState, AdaptableTheme } from '../../AdaptableState/ThemeState';
/**
 * @ReduxAction System Themes have been set
 */
export declare const THEME_SET_SYSTEM_THEMES = "THEME_SET_SYSTEM_THEMES";
/**
 * @ReduxAction User Themes have been set
 */
export declare const THEME_SET_USER_THEMES = "THEME_SET_USER_THEMES";
/**
 * @ReduxAction A theme has been selected
 */
export declare const THEME_SELECT = "THEME_SELECT";
/**
 * @ReduxAction Theme Module is ready
 */
export declare const THEME_READY = "THEME_READY";
/**
 * @ReduxAction Theme Module is edited
 */
export declare const THEME_EDIT = "THEME_EDIT";
/**
 * @ReduxAction A new theme is added
 */
export declare const THEME_ADD = "THEME_ADD";
/**
 * @ReduxAction A theme is deleted
 */
export declare const THEME_DELETE = "THEME_DELETE";
export interface ThemeSetSystemThemesAction extends Redux.Action {
    SystemThemes: AdaptableTheme[];
}
export interface ThemeSetUserThemesAction extends Redux.Action {
    UserThemes: AdaptableTheme[];
}
export interface ThemeSelectAction extends Redux.Action {
    Theme: string;
}
export interface ThemeReadyAction extends Redux.Action {
    themeState: ThemeState;
}
export interface ThemeReadyAction extends Redux.Action {
    themeState: ThemeState;
}
export interface ThemeEditAction extends Redux.Action {
    theme: AdaptableTheme;
}
export interface ThemeAddUserThemeAction extends Redux.Action {
    theme: AdaptableTheme;
}
export interface ThemeDeleteUserThemeAction extends Redux.Action {
    theme: AdaptableTheme;
}
export declare const ThemeSetSystemThemes: (SystemThemes: AdaptableTheme[]) => ThemeSetSystemThemesAction;
export declare const ThemeSetUserThemes: (UserThemes: AdaptableTheme[]) => ThemeSetUserThemesAction;
export declare const ThemeSelect: (Theme: string) => ThemeSelectAction;
export declare const ThemeReady: (themeState: ThemeState) => ThemeReadyAction;
export declare const ThemeEdit: (theme: AdaptableTheme) => ThemeEditAction;
export declare const ThemeAdd: (theme: AdaptableTheme) => ThemeAddUserThemeAction;
export declare const ThemeDelete: (theme: AdaptableTheme) => ThemeDeleteUserThemeAction;
export declare const ThemeReducer: Redux.Reducer<ThemeState>;
