import * as Redux from 'redux';
import { CommentThread, AdaptableComment, CommentState } from '../../AdaptableState/CommentState';
import { CellAddress } from '../../types';
/**
 * @ReduxAction A Comments has been added
 */
export declare const COMMENTS_ADD = "COMMENTS_ADD";
/**
 * @ReduxAction Cell Comments has been added
 */
export declare const COMMENTS_CELL_ADD = "COMMENTS_CELL_ADD";
/**
 * @ReduxAction Cell comments have been removed
 */
export declare const COMMENTS_CELL_DELETE = "COMMENTS_CELL_DELETE";
/**
 * @ReduxAction A Comments has been edited
 */
export declare const COMMENTS_EDIT = "COMMENTS_EDIT";
/**
 * @ReduxAction A Comments has been deleted
 */
export declare const COMMENTS_DELETE = "COMMENTS_DELETE";
/**
 * @ReduxAction Comments Module is ready
 */
export declare const COMMENTS_READY = "COMMENTS_READY";
export declare const COMMENTS_LOAD = "COMMENTS_LOAD";
export interface AdaptableCommentAction extends Redux.Action {
    comment: AdaptableComment;
    cellAddress: CellAddress;
}
export interface AdaptableCommentsAddAction extends AdaptableCommentAction {
}
export interface AdaptableCommentsCellAddAction extends Redux.Action {
    commentThread: CommentThread;
}
export interface AdaptableCommentsSetAction extends Redux.Action {
    commentThread: CommentThread[];
}
export interface AdaptableCommentsCellDeleteAction extends Redux.Action {
    cellAddress: CellAddress;
}
export interface AdaptableCommentsEditAction extends AdaptableCommentAction {
}
export interface AdaptableCommentsDeleteAction extends Redux.Action {
    commentUuid: AdaptableComment['Uuid'];
    cellAddress: CellAddress;
}
export interface NoteReadyAction extends Redux.Action {
    commentState: CommentState;
}
export declare const CommentsSet: ({ commentThread, }: {
    commentThread: CommentThread[];
}) => AdaptableCommentsSetAction;
export declare const CommentsAdd: ({ comment, cellAddress, }: {
    comment: AdaptableComment;
    cellAddress: CellAddress;
}) => AdaptableCommentsAddAction;
export declare const CommentsCellAdd: ({ commentThread, }: {
    commentThread: CommentThread;
}) => AdaptableCommentsCellAddAction;
export declare const CommentsCellDelete: ({ cellAddress: cellAddress, }: {
    cellAddress: CellAddress;
}) => AdaptableCommentsCellDeleteAction;
export declare const CommentsEdit: ({ comment, cellAddress, }: {
    comment: AdaptableComment;
    cellAddress: CellAddress;
}) => AdaptableCommentsEditAction;
export declare const CommentsDelete: ({ commentUuid, cellAddress, }: {
    commentUuid: AdaptableComment['Uuid'];
    cellAddress: CellAddress;
}) => AdaptableCommentsDeleteAction;
export declare const GetCellCommentSelector: (state: CommentState, address: CellAddress) => CommentThread | undefined;
export declare const CommentsReducer: Redux.Reducer<CommentState>;
