import * as Redux from 'redux';
import { AdaptableState } from '../../../types';
import { LayoutState, Layout } from '../../AdaptableState/LayoutState';
import { ColumnFilter } from '../../types';
/**
 * @ReduxAction Layout Module is ready
 */
export declare const LAYOUT_READY = "LAYOUT_READY";
/**
 * @ReduxAction A Layout has been added
 */
export declare const LAYOUT_ADD = "LAYOUT_ADD";
/**
 * @ReduxAction A Layout has been edited
 */
export declare const LAYOUT_EDIT = "LAYOUT_EDIT";
/**
 * @ReduxAction A Layout has been deleted
 */
export declare const LAYOUT_DELETE = "LAYOUT_DELETE";
/**
 * @ReduxAction A Layout has been selected
 */
export declare const LAYOUT_SELECT = "LAYOUT_SELECT";
/**
 * @ReduxAction A Layout has been (auto)saved
 */
export declare const LAYOUT_SAVE = "LAYOUT_SAVE";
/**
 * @ReduxAction A Column Filter has been added
 */
export declare const LAYOUT_COLUMN_FILTER_ADD = "LAYOUT_COLUMN_FILTER_ADD";
/**
 * @ReduxAction A Column Filter has been edited
 */
export declare const LAYOUT_COLUMN_FILTER_EDIT = "LAYOUT_COLUMN_FILTER_EDIT";
/**
 * @ReduxAction Column Filters have been set
 */
export declare const LAYOUT_COLUMN_FILTER_SET = "LAYOUT_COLUMN_FILTER_SET";
/**
 * @ReduxAction All Column Filters have been cleared
 */
export declare const LAYOUT_COLUMN_FILTER_CLEAR_ALL = "LAYOUT_COLUMN_FILTER_CLEAR_ALL";
/**
 * @ReduxAction A Column Filter has been cleared
 */
export declare const LAYOUT_COLUMN_FILTER_CLEAR = "LAYOUT_COLUMN_FILTER_CLEAR";
/**
 * @ReduxAction Column Filter is suspended
 */
export declare const LAYOUT_COLUMN_FILTER_SUSPEND = "LAYOUT_COLUMN_FILTER_SUSPEND";
/**
 * @ReduxAction Column Filter is un-suspended, or activated
 */
export declare const LAYOUT_COLUMN_FILTER_UNSUSPEND = "LAYOUT_COLUMN_FILTER_UNSUSPEND";
/**
 * @ReduxAction All Column Filters are suspended
 */
export declare const LAYOUT_COLUMN_FILTER_SUSPEND_ALL = "LAYOUT_COLUMN_FILTER_SUSPEND_ALL";
/**
 * @ReduxAction All Column Filters are un-suspended, or activated
 */
export declare const LAYOUT_COLUMN_FILTER_UNSUSPEND_ALL = "LAYOUT_COLUMN_FILTER_UNSUSPEND_ALL";
/**
 * @ReduxAction Grid Filter is un-suspended, or activated
 */
export declare const LAYOUT_GRID_FILTER_SUSPEND = "LAYOUT_GRID_FILTER_SUSPEND";
/**
 * @ReduxAction Grid Filter is un-suspended, or activated
 */
export declare const LAYOUT_GRID_FILTER_UNSUSPEND = "LAYOUT_GRID_FILTER_UNSUSPEND";
/**
 * @ReduxAction The Grid Filter has been edited
 */
export declare const LAYOUT_GRID_FILTER_SET = "LAYOUT_GRID_FILTER_SET";
/**
 * @ReduxAction The Grid Filter has been cleared
 */
export declare const LAYOUT_GRID_FILTER_CLEAR = "LAYOUT_GRID_FILTER_CLEAR";
export interface LayoutColumnFilterAction extends Redux.Action {
    columnFilter: ColumnFilter;
}
export interface LayoutColumnFilterAddAction extends LayoutColumnFilterAction {
}
export interface LayoutColumnFilterEditAction extends LayoutColumnFilterAction {
}
export interface LayoutColumnFilterSetAction extends LayoutColumnFilterAction {
}
export interface LayoutColumnFilterClearAction extends Redux.Action {
    columnId: string;
}
export interface LayoutColumnFilterClearAllAction extends Redux.Action {
}
export interface LayoutColumnFilterSuspendAction extends LayoutColumnFilterAction {
}
export interface LayoutColumnFilterSuspendAllAction extends Redux.Action {
}
export interface LayoutColumnFilterUnSuspendAction extends LayoutColumnFilterAction {
}
export interface LayoutColumnFilterUnSuspendAllAction extends Redux.Action {
}
export interface LayoutGridFilterSuspendAction extends Redux.Action {
}
export interface LayoutGridFilterUnSuspendAction extends Redux.Action {
}
export interface LayoutGridFilterClearAction extends Redux.Action {
}
export declare const LayoutColumnFilterAdd: (columnFilter: ColumnFilter) => LayoutColumnFilterAddAction;
export declare const LayoutColumnFilterEdit: (columnFilter: ColumnFilter) => LayoutColumnFilterEditAction;
export declare const LayoutColumnFilterSet: (columnFilter: ColumnFilter) => LayoutColumnFilterSetAction;
export declare const LayoutColumnFilterClearAll: () => LayoutColumnFilterClearAllAction;
export declare const LayoutColumnFilterClear: (columnId: string) => LayoutColumnFilterClearAction;
export declare const LayoutColumnFilterSuspend: (columnFilter: ColumnFilter) => LayoutColumnFilterSuspendAction;
export declare const LayoutColumnFilterUnSuspend: (columnFilter: ColumnFilter) => LayoutColumnFilterUnSuspendAction;
export declare const LayoutColumnFilterSuspendAll: () => LayoutColumnFilterSuspendAllAction;
export declare const LayoutColumnFilterUnSuspendAll: () => LayoutColumnFilterUnSuspendAllAction;
export interface LayoutGridFilterSetAction extends Redux.Action {
    gridFilter?: string;
}
export declare const LayoutGridFilterSet: (gridFilter?: string) => LayoutGridFilterSetAction;
export declare const LayoutGridFilterSuspend: () => LayoutGridFilterSuspendAction;
export declare const LayoutGridFilterUnSuspend: () => LayoutGridFilterUnSuspendAction;
export declare const LayoutGridFilterClear: () => LayoutGridFilterClearAction;
export interface LayoutAction extends Redux.Action {
    layout: Layout;
}
export interface LayoutAddAction extends LayoutAction {
}
export interface LayoutEditAction extends LayoutAction {
}
export interface LayoutDeleteAction extends LayoutAction {
}
export interface LayoutSaveAction extends LayoutAction {
}
export interface LayoutSetColumnCaptionAction extends Redux.Action {
    layoutName: string;
    columnId: string;
    caption: string;
}
export interface LayoutAddColumnAction extends Redux.Action {
    layoutName: string;
    columnId: string;
}
export interface LayoutRemoveColumnAction extends Redux.Action {
    layoutName: string;
    columnId: string;
}
export interface LayoutSelectAction extends Redux.Action {
    layoutName: string;
}
export interface LayoutIncludeAgGridStateAction extends Redux.Action {
}
export interface LayoutExcludeAgGridStateAction extends Redux.Action {
}
export interface LayoutReadyAction extends Redux.Action {
    layoutState: LayoutState;
}
export declare const LayoutAdd: (layout: Layout) => LayoutAddAction;
export declare const LayoutDelete: (layout: Layout) => LayoutDeleteAction;
export declare const LayoutSave: (layout: Layout) => LayoutSaveAction;
export declare const LayoutSelect: (layoutName: string) => LayoutSelectAction;
export declare const LayoutReady: (layoutState: LayoutState) => LayoutReadyAction;
export declare const getColumnFiltersSelector: (state: AdaptableState) => ColumnFilter[];
export declare const getCurrentLayoutSelector: (state: AdaptableState) => Layout;
export declare const getColumnFilterSelector: (state: AdaptableState, columnId: string) => {
    ColumnId: string;
    Predicates: import("../../types").ColumnFilterPredicate[];
    PredicatesOperator?: import("../../types").PredicatesOperator;
    IsSuspended?: boolean;
    Source?: "InitialState" | "User";
    AdaptableVersion?: import("../../types").AdaptableVersion;
    IsReadOnly?: boolean;
    Tags?: import("../../types").AdaptableObjectTag[];
    Metadata?: any;
    Uuid?: import("../../AdaptableState/Uuid").TypeUuid;
};
export declare const LayoutReducer: Redux.Reducer<LayoutState>;
