import { AdaptableReadyInfo, AdaptableStateChangedInfo, AdaptableStateReloadedInfo, AlertFiredInfo, CalculatedColumnChangedInfo, CellChangedInfo, CellSelectionChangedInfo, ChartChangedInfo, ColumnFilterAppliedInfo, CommentChangedInfo, CustomToolbarConfiguredInfo, DashboardChangedInfo, DataImportedInfo, DataSetSelectedInfo, Fdc3MessageInfo, FlashingCellDisplayedInfo, RowChangedInfo, GridFilterAppliedInfo, GridSortedInfo, LayoutChangedInfo, LiveDataChangedInfo, RowFormSubmittedInfo, RowSelectionChangedInfo, ScheduleTriggeredInfo, SystemStatusMessageDisplayedInfo, TeamSharingEntityChangedInfo, ThemeChangedInfo } from '../types';
/**
 * Responsible for publishing the many Events that AdapTable fires
 */
export interface EventApi {
    /**
     * Event fired whenever AdapTable is Sorted
     * @param eventName GridSorted
     * @param callback GridSortedInfo which contains current Column Sorts
     * @returns the unsubscribe function
     */
    on(eventName: 'GridSorted', callback: (gridSortedInfo: GridSortedInfo) => void): VoidFunction;
    /**
     * Unsubscribe from GridSorted
     * @param eventName GridSorted
     * @param callback
     */
    off(eventName: 'GridSorted', callback: (gridSortedInfo: GridSortedInfo) => void): void;
    on(eventName: 'GridFilterApplied', callback: (gridFilterAppliedInfo: GridFilterAppliedInfo) => void): VoidFunction;
    /**
     * Unsubscribe from GridFilterApplied
     * @param eventName GridFilterApplied
     * @param callback
     */
    off(eventName: 'GridFilterApplied', callback: (gridFilterAppliedInfo: GridFilterAppliedInfo) => void): void;
    /**
     * Event fired whenever a Schedule is triggered in AdapTable
     * @param eventName ScheduleTriggered
     * @param callback ScheduleTriggered which provides details of the Schedule that was triggered
     * @returns the unsubscribe function
     */
    on(eventName: 'ScheduleTriggered', callback: (scheduleTriggeredInfo: ScheduleTriggeredInfo) => void): VoidFunction;
    /**
     * Unsubscribe from ScheduleTriggered
     * @param eventName ScheduleTriggered
     * @param callback
     */
    off(eventName: 'ScheduleTriggered', callback: (scheduleTriggeredInfo: ScheduleTriggeredInfo) => void): void;
    /**
     * Event fired whenever a Column Filter is Applied in AdapTable
     * @param eventName ColumnFilterApplied
     * @param callback ColumnFilterApplied which provides details of the Column Filter that was applied
     * @returns the unsubscribe function
     */
    on(eventName: 'ColumnFilterApplied', callback: (columnFilterAppliedInfo: ColumnFilterAppliedInfo) => void): VoidFunction;
    /**
     * Unsubscribe from ColumnFilterApplied
     * @param eventName ColumnFilterApplied
     * @param callback
     */
    off(eventName: 'ColumnFilterApplied', callback: (columnFilterAppliedInfo: ColumnFilterAppliedInfo) => void): void;
    /**
     * Event fired whenever a cell changes in the Grid
     * @param eventName CellChanged
     * @param callback CellChangedInfo which includes full details of what changed
     * @returns the unsubscribe function
     */
    on(eventName: 'CellChanged', callback: (cellChangedInfo: CellChangedInfo) => void): VoidFunction;
    /**
     * Unsubscribe from CellChanged
     * @param eventName CellChanged
     * @param callback
     */
    off(eventName: 'CellChanged', callback: (cellChangedInfo: CellChangedInfo) => void): void;
    /**
     * Event fired when a row is added, deleted or updated in the Grid
     * @param eventName RowChanged
     * @param callback RowChangedInfo which includes full details of changed Rows
     * @returns the unsubscribe function
     */
    on(eventName: 'RowChanged', callback: (rowChangedInfo: RowChangedInfo) => void): VoidFunction;
    /**
     * Unsubscribe from RowChanged
     * @param eventName RowChanged
     * @param callback
     */
    off(eventName: 'RowChanged', callback: (rowChangedInfo: RowChangedInfo) => void): void;
    /**
     * Event fired whenever a Shared Entity in Team Sharing changes
     * @param eventName TeamSharingEntityChanged
     * @param callback TeamSharingEntityChangedInfo which includes full details of what changed
     * @returns the unsubscribe function
     */
    on(eventName: 'TeamSharingEntityChanged', callback: (TeamSharingEntityChangedInfo: TeamSharingEntityChangedInfo) => void): VoidFunction;
    /**
     * Unsubscribe from TeamSharingEntityChanged
     * @param eventName TeamSharingEntityChanged
     * @param callback
     */
    off(eventName: 'TeamSharingEntityChanged', callback: (TeamSharingEntityChangedInfo: TeamSharingEntityChangedInfo) => void): void;
    /**
     * Event fired whenever the Cell **Selection in AdapTable changes**.
     * @param eventName CellSelectionChanged
     * @param callback CellSelectionChangedInfo which contains information of any cells that are selected.
     * @returns the unsubscribe function
     */
    on(eventName: 'CellSelectionChanged', callback: (cellSelectionChangedInfo: CellSelectionChangedInfo) => void): VoidFunction;
    /**
     * Unsubscribe from CellSelectionChanged
     */
    off(eventName: 'CellSelectionChanged', callback: (cellSelectionChangedInfo: CellSelectionChangedInfo) => void): void;
    /**
     * Event fired whenever the Row **Selection in AdapTable changes**.
     * @param eventName RowSelectionChanged
     * @param callback RowSelectionChangedInfo which contains information of any rows that are selected.
     * @returns the unsubscribe function
     */
    on(eventName: 'RowSelectionChanged', callback: (rowSelectionChangedInfo: RowSelectionChangedInfo) => void): VoidFunction;
    /**
     * Unsubscribe from RowSelectionChanged
     */
    off(eventName: 'RowSelectionChanged', callback: (rowSelectionChangedInfo: RowSelectionChangedInfo) => void): void;
    /**
     * Event fired whenever the selected theme of AdapTable is changed
     * @param eventName ThemeChanged
     * @param callback ThemeChangedInfo which just contains the name of the current Theme
     * @returns the unsubscribe function
     */
    on(eventName: 'ThemeChanged', callback: (themeChangedInfo: ThemeChangedInfo) => void): VoidFunction;
    /**
     * Unsubscribe from ThemeChanged
     */
    off(eventName: 'ThemeChanged', callback: (themeChangedInfo: ThemeChangedInfo) => void): void;
    /**
     * Event fired whenever a **System Status Message is displayed** in AdapTable
     * @param eventName SystemStatusMessageDisplayed
     * @param callback SystemStatusMessageDisplayed which provides `SystemStatusMessageInfo`
     * @returns the unsubscribe function
     */
    on(eventName: 'SystemStatusMessageDisplayed', callback: (systemStatusMessageDisplayedInfo: SystemStatusMessageDisplayedInfo) => void): VoidFunction;
    /**
     * Unsubscribe from SystemStatusMessageDisplayed
     */
    off(eventName: 'SystemStatusMessageDisplayed', callback: (SystemStatusMessageDisplayedInfo: SystemStatusMessageDisplayedInfo) => void): void;
    /**
     * Event fired whenever an **Alert is triggered** in AdapTable.
     * @param eventName AlertFired
     * @param callback AlertFiredInfo which wrap the Alert that was fired
     * @returns the unsubscribe function
     */
    on(eventName: 'AlertFired', callback: (alertFiredInfo: AlertFiredInfo) => void): VoidFunction;
    /**
     * Unsubscribe from AlertFired
     */
    off(eventName: 'AlertFired', callback: (alertFiredInfo: AlertFiredInfo) => void): void;
    /**
     * Event fired when **Data has been imported**
     * @param eventName DataImported
     * @param callback DataImportedInfo which contains the imported data
     * @returns the unsubscribe function
     */
    on(eventName: 'DataImported', callback: (dataImportedInfo: DataImportedInfo) => void): VoidFunction;
    /**
     * Unsubscribe from DataImported
     */
    off(eventName: 'DataImported', callback: (dataImportedInfo: DataImportedInfo) => void): void;
    /**
     * Event fired whenever **Cell Flashing** is triggered in AdapTable.
     * @param eventName FlashingCellDisplayed
     * @param callback FlashingCellDisplayedInfo which wrap the `AdaptableFlashingCell` that was displayed
     * @returns the unsubscribe function
     */
    on(eventName: 'FlashingCellDisplayed', callback: (flashingCellDisplayedInfo: FlashingCellDisplayedInfo) => void): VoidFunction;
    /**
     * Unsubscribe from FlashingCellDisplayed
     */
    off(eventName: 'FlashingCellDisplayed', callback: (flashingCellDisplayedInfo: FlashingCellDisplayedInfo) => void): void;
    /**
     * Event fired whenever the current Layout updates in AdapTable
     * @param eventName LayoutChanged
     * @param callback LayoutChanged which includes just the name of the currently selected Layout.
     * @returns the unsubscribe function
     */
    on(eventName: 'LayoutChanged', callback: (layoutChangedInfo: LayoutChangedInfo) => void): VoidFunction;
    /**
     * Unsubscribe from LayoutChanged
     */
    off(eventName: 'LayoutChanged', callback: (layoutChangedInfo: LayoutChangedInfo) => void): void;
    /**
     * Event fired whenever a Calculated Columns is created / updated / deleted in AdapTable
     * @param eventName CalculatedColumnChanged
     * @param callback CalculatedColumnChanged which includes the action and details of the Calculated Column
     * @returns the unsubscribe function
     */
    on(eventName: 'CalculatedColumnChanged', callback: (calculatedColumnChangedInfo: CalculatedColumnChangedInfo) => void): VoidFunction;
    /**
     * Unsubscribe from CalculatedColumnChanged
     */
    off(eventName: 'CalculatedColumnChanged', callback: (calculatedColumnChangedInfo: CalculatedColumnChangedInfo) => void): void;
    /**
     * Event fired whenever **Configure Button is clicked in a Custom Toolbar**
     * @param eventName CustomToolbarConfigured
     * @param callback CustomToolbarConfiguredInfo which contains the Custom Toolbar
     * @returns the unsubscribe function
     */
    on(eventName: 'CustomToolbarConfigured', callback: (customToolbarConfiguredInfo: CustomToolbarConfiguredInfo) => void): VoidFunction;
    /**
     * Unsubscribe from CustomToolbarConfigured
     */
    off(eventName: 'CustomToolbarConfigured', callback: (customToolbarConfiguredInfo: CustomToolbarConfiguredInfo) => void): void;
    /**
     * Event fired whenever **Dashboard State changes**
     * Primarily used for rendering Custom toolbars.
     * @param eventName DashboardChanged
     * @param callback DashboardChangedInfo which includes the full Dashboard State
     * @returns the unsubscribe function
     */
    on(eventName: 'DashboardChanged', callback: (dashboardChangedInfo: DashboardChangedInfo) => void): VoidFunction;
    /**
     * Unsubscribe from DashboardChanged
     */
    off(eventName: 'DashboardChanged', callback: (dashboardChangedInfo: DashboardChangedInfo) => void): void;
    /**
     * Event fired whenever **Adaptable State changes**
     * @param eventName AdaptableStateChanged
     * @param callback AdaptableStateChangedInfo
     * @returns the unsubscribe function
     */
    on(eventName: 'AdaptableStateChanged', callback: (adaptableStateChangedInfo: AdaptableStateChangedInfo) => void): () => void;
    /**
     * Unsubscribe from AdaptableStateChanged
     */
    off(eventName: 'AdaptableStateChanged', callback: (adaptableStateChangedInfo: AdaptableStateChangedInfo) => void): void;
    /**
     * Event fired whenever **Adaptable State is reloaded**
     * @param eventName AdaptableStateReloaded
     * @param callback AdaptableStateReloadedInfo
     * @returns the unsubscribe function
     */
    on(eventName: 'AdaptableStateReloaded', callback: (adaptableStateReloadedInfo: AdaptableStateReloadedInfo) => void): () => void;
    /**
     * Unsubscribe from AdaptableStateReloaded
     */
    off(eventName: 'AdaptableStateReloaded', callback: (adaptableStateReloadedInfo: AdaptableStateReloadedInfo) => void): void;
    /**
     * Event fired whenever **a change occurs relating to live reports / data**
     * Used in conjunction with AdapTable's partners OpenFin or ipushpull
     * @param eventName LiveDataChanged
     * @param callback LiveDataChangedInfo which includes details of what triggered the event and the live report which is affected.
     * @returns the unsubscribe function
     */
    on(eventName: 'LiveDataChanged', callback: (liveDataChangedInfo: LiveDataChangedInfo) => void): () => void;
    /**
     * Unsubscribe from LiveDataChanged
     */
    off(eventName: 'LiveDataChanged', callback: (liveDataChangedInfo: LiveDataChangedInfo) => void): void;
    /**
     * Event fired when a Row Form is submitted
     *
     * @param eventName RowFormSubmitted
     * @param callback RowFormSubmitted
     */
    on(eventName: 'RowFormSubmitted', callback: (rowFormSubmittedInfo: RowFormSubmittedInfo) => void): () => void;
    /**
     * Unsubscribe from RowFormSubmitted
     * @param eventName RowFormSubmitted
     * @param callback
     */
    off(eventName: 'RowFormSubmittedInfo', callback: (rowFormSubmittedInfo: RowFormSubmittedInfo) => void): void;
    /**
     * Event fired when a DataSet is Selected
     *
     * @param eventName DataSetSelected
     * @param callback DataSetSelectedInfo
     */
    on(eventName: 'DataSetSelected', callback: (dataSetSelectedInfo: DataSetSelectedInfo) => void): () => void;
    /**
     * Unsubscribe from DataSetSelected
     * @param eventName DataSetSelected
     * @param callback
     */
    off(eventName: 'DataSetSelected', callback: (dataSetSelectedInfo: DataSetSelectedInfo) => void): void;
    /**
     * Event fired when a Chart is Changed
     *
     * @param eventName ChartChanged
     * @param callback ChartChangedInfo
     */
    on(eventName: 'ChartChanged', callback: (chartChangedInfo: ChartChangedInfo) => void): () => void;
    /**
     * Unsubscribe from ChartChanged
     * @param eventName ChartChanged
     * @param callbackChartChangedInfo
     */
    off(eventName: 'ChartChanged', callback: (chartChangedInfo: ChartChangedInfo) => void): void;
    /**
     * Event fired when a Comment is Changed
     * @param eventName CommentChanged
     * @param callback
     */
    on(eventName: 'CommentChanged', callback: (commentChangedInfo: CommentChangedInfo) => void): () => void;
    /**
     * Unsubscribe from CommentChanged
     * @param eventName
     * @param callback
     */
    off(eventName: 'CommentChanged', callback: (commentChangedInfo: CommentChangedInfo) => void): void;
    /**
     * Fired when Adaptable is up and running - has no arguments.
     * @param eventName - AdaptableReady
     * @param callback - An `AdaptableReadyInfo` object which contains the adaptableApi and GridOptions
     * @returns the unsubscribe function
     *
     * @example Use as
     * ```
     * adaptableApi.eventApi.on('AdaptableReady', (adaptableReadyInfo: AdaptableReadyInfo) => { .....[do stuff]...})
     * ```
     */
    on(eventName: 'AdaptableReady', callback: (adaptableReadyInfo: AdaptableReadyInfo) => void): VoidFunction;
    /**
     * Fired when Adaptable is destroyed
     * @param eventName - AdaptableDestroy
     * @param callback - A callback for listening to `AdaptableDestroy`
     * @returns the unsubscribe function
     *
     * @example Use as
     * ```
     * adaptableApi.eventApi.on('AdaptableDestroy', () => { .....[do stuff]...})
     * ```
     */
    on(eventName: 'AdaptableDestroy', callback: () => void): VoidFunction;
    /**
     * Unsubscribe from AdaptableReady
     */
    off(eventName: 'AdaptableReady', callback: (adaptableReadyInfo: AdaptableReadyInfo) => void): void;
    /**
     * Event fired when an FDC3 message is sent(Raise Intent or Broadcast Context) or received (Intent or Context)
     *
     * @param eventName Fdc3Message
     * @param callback Fdc3MessageInfo
     */
    on(eventName: 'Fdc3Message', callback: (fdc3MessageInfo: Fdc3MessageInfo) => void): () => void;
    /**
     * Unsubscribe from Fdc3Message
     * @param eventName Fdc3Message
     * @param callbackFdc3MessageInfo
     */
    off(eventName: 'Fdc3Message', callback: (fdc3MessageInfo: Fdc3MessageInfo) => void): void;
    emitSync(eventName: 'DashboardChanged', data?: any): any[];
    emitSync(eventName: 'FlashingCellDisplayed', data?: any): any[];
    emitSync(eventName: 'AdaptableDestroy'): any[];
    emit(eventName: 'RowFormSubmitted' | 'AdaptableReady' | 'AlertFired' | 'AdaptableStateChanged' | 'AdaptableStateReloaded' | 'CellChanged' | 'ChartChanged' | 'CheckboxColumnClicked' | 'CustomToolbarConfigured' | 'DashboardChanged' | 'DataImported' | 'DataSetSelected' | 'ColumnFilterApplied' | 'Fdc3Message' | 'RowChanged' | 'GridSorted' | 'LayoutChanged' | 'CalculatedColumnChanged' | 'LiveDataChanged' | 'ScheduleTriggered' | 'SearchChanged' | 'CellSelectionChanged' | 'RowSelectionChanged' | 'SystemStatusMessageDisplayed' | 'TeamSharingEntityChanged' | 'ThemeChanged' | 'GridFilterApplied' | 'CommentChanged', data?: any): Promise<any>;
    destroy(): void;
}
