import * as Redux from 'redux';
import { AdaptableNote, NoteState } from '../../AdaptableState/NoteState';
import { CellAddress } from '../../types';
/**
 * @ReduxAction A Note has been added
 */
export declare const NOTE_ADD = "NOTE_ADD";
/**
 * @ReduxAction A Note has been edited
 */
export declare const NOTE_EDIT = "NOTE_EDIT";
/**
 * @ReduxAction A Note has been deleted
 */
export declare const NOTE_DELETE = "NOTE_DELETE";
/**
 * @ReduxAction Note Module is ready
 */
export declare const NOTE_READY = "NOTE_READY";
export interface AdaptableNoteAction extends Redux.Action {
    adaptableNote: AdaptableNote;
}
export interface AdaptableNoteAddAction extends AdaptableNoteAction {
}
export interface AdaptableNoteEditAction extends AdaptableNoteAction {
}
export interface AdaptableNoteDeleteAction extends AdaptableNoteAction {
}
export interface NoteReadyAction extends Redux.Action {
    noteState: NoteState;
}
export declare const NoteAdd: (note: AdaptableNote) => AdaptableNoteAddAction;
export declare const NoteEdit: (note: AdaptableNote) => AdaptableNoteEditAction;
export declare const NoteDelete: (note: AdaptableNote) => AdaptableNoteDeleteAction;
export declare const NoteReady: (note: NoteState) => NoteReadyAction;
export declare const GetAllNotesSelector: (state: NoteState) => AdaptableNote[];
export declare const GetNoteSelector: (state: NoteState, address: CellAddress) => AdaptableNote;
export declare const NoteReducer: Redux.Reducer<NoteState>;
