import { PopupState } from './PopupState';
import { GridState } from './GridState';
import { SystemState } from './SystemState';
import { AlertState } from './AlertState';
import { CalculatedColumnState } from './CalculatedColumnState';
import { CustomSortState } from './CustomSortState';
import { DashboardState } from './DashboardState';
import { ExportState } from './ExportState';
import { FormatColumnState } from './FormatColumnState';
import { FreeTextColumnState } from './FreeTextColumnState';
import { LayoutState } from './LayoutState';
import { ScheduleState } from './ScheduleState';
import { PlusMinusState } from './PlusMinusState';
import { QuickSearchState } from './QuickSearchState';
import { ShortcutState } from './ShortcutState';
import { TeamSharingState } from './TeamSharingState';
import { ThemeState } from './ThemeState';
import { ConfigState } from './ConfigState';
import { ApplicationState } from './ApplicationState';
import { ToolPanelState } from './ToolPanelState';
import { FlashingCellState } from './FlashingCellState';
import { StatusBarState } from './StatusBarState';
import { ChartingState } from './ChartingState';
import { StyledColumnState } from './StyledColumnState';
import { NoteState } from './NoteState';
import { NamedQueryState } from './NamedQueryState';
import { CommentState } from './CommentState';
/**
 * The main state object of Adaptable
 */
export interface AdaptableState extends AdaptablePersistentState, AdaptableTransientState {
    [s: string]: ConfigState;
}
/**
 * The state object of Adaptable which is persisted
 */
export interface AdaptablePersistentState {
    Application: ApplicationState;
    Alert: AlertState;
    FlashingCell: FlashingCellState;
    CalculatedColumn: CalculatedColumnState;
    CustomSort: CustomSortState;
    Dashboard: DashboardState;
    Export: ExportState;
    FormatColumn: FormatColumnState;
    FreeTextColumn: FreeTextColumnState;
    Layout: LayoutState;
    PlusMinus: PlusMinusState;
    NamedQuery: NamedQueryState;
    QuickSearch: QuickSearchState;
    Schedule: ScheduleState;
    StyledColumn: StyledColumnState;
    Shortcut: ShortcutState;
    StatusBar: StatusBarState;
    TeamSharing: TeamSharingState;
    Theme: ThemeState;
    ToolPanel: ToolPanelState;
    Charting: ChartingState;
    Note: NoteState;
}
/**
 * The state which is available in the internal Redux store but never persisted
 */
export interface AdaptableTransientState {
    Popup: PopupState;
    Grid: GridState;
    System: SystemState;
    Comment: CommentState;
    Plugins: {
        [key: string]: any;
    };
}
