import { AdaptableNote, AdaptableNotes, NoteState } from '../AdaptableState/NoteState';
import { CellAddress } from '../../types';
/**
 * Provides run-time access to Notes Module and related State
 */
export interface NoteApi {
    /**
     * Adds a new Note
     * @param text
     * @param primaryKeyValue
     * @param columnId
     */
    addNote(text: string, primaryKeyValue: any, columnId: string): void;
    /**
     * Edits a Note
     * @param note
     */
    editNote(note: AdaptableNote): void;
    /**
     * Edits text of a Note
     * @param text
     * @param note
     */
    updateNoteText(text: string, note: AdaptableNote): void;
    /**
     * Deletes a Note
     * @param note
     */
    deleteNote(note: AdaptableNote): void;
    /**
     * Gets the Note State
     */
    getNoteState(): NoteState;
    /**
     * Gets all Notes
     */
    getAllNotes(): AdaptableNotes;
    /**
     * Gets all Notes for a cell
     * @param cellAddress note position
     */
    getNoteForCell(cellAddress: CellAddress): AdaptableNote;
    /**
     * Returns a Note by uuid
     * @param uuid note uuid
     */
    getNoteByUuid(uuid: string): AdaptableNote | undefined;
}
