///
import { INotifyPropertyChanged, ModuleDeclaration } from '@syncfusion/ej2-base';
import { EmitType } from '@syncfusion/ej2-base';
import { MenuItemModel, BeforeOpenCloseMenuEventArgs, ItemModel } from '@syncfusion/ej2-navigations';
import { BeforeOpenEventArgs, UndoRedoEventArgs } from '../common/index';
import { DialogBeforeOpenEventArgs } from '../common/index';
import { CollaborativeEditArgs } from '../common/index';
import { CellEditEventArgs, CellSaveEventArgs } from '../common/index';
import { PasteSpecialType } from '../common/index';
import { Render } from '../renderer/render';
import { Scroll, Selection } from '../actions/index';
import { AutoFill, SpreadsheetNote, SpreadsheetComment } from '../actions/index';
import { CellRenderEventArgs, IRenderer, IViewport, OpenOptions, MenuSelectEventArgs } from '../common/index';
import { SheetModel, HyperlinkModel, DefineNameModel } from './../../workbook/index';
import { BeforeHyperlinkArgs, AfterHyperlinkArgs, FindOptions, ValidationModel, PrintOptions } from './../../workbook/common/index';
import { BeforeCellFormatArgs, CellStyleModel } from './../../workbook/index';
import { BeforeSaveEventArgs, SaveCompleteEventArgs } from './../../workbook/index';
import { CellModel, DataSourceChangedEventArgs } from './../../workbook/index';
import { BeforeSortEventArgs, SortOptions, SortEventArgs } from './../../workbook/index';
import { FilterOptions, FilterEventArgs, ProtectSettingsModel } from './../../workbook/index';
import { Workbook } from '../../workbook/base/workbook';
import { SpreadsheetModel } from './spreadsheet-model';
import { ScrollSettingsModel, SelectionSettingsModel } from '../common/index';
import { BeforeSelectEventArgs, SelectEventArgs } from '../common/index';
import { WorkbookNumberFormat, WorkbookFormula } from '../../workbook/index';
import { Open } from '../integrations/index';
import { PredicateModel } from '@syncfusion/ej2-grids';
import { RibbonItemModel } from '../../ribbon/index';
import { ClearOptions, ConditionalFormatModel, ImageModel } from './../../workbook/common/index';
import { NumberFormatArgs } from '../../workbook/index';
import { ConditionalFormatEventArgs } from '../common/index';
import { Print } from '../renderer/print';
/**
* Represents the Spreadsheet component.
*
* ```html
*
*
* ```
*/
export declare class Spreadsheet extends Workbook implements INotifyPropertyChanged {
/**
* To specify a CSS class or multiple CSS class separated by a space, add it in the Spreadsheet root element.
* This allows you to customize the appearance of component.
*
* {% codeBlock src='spreadsheet/cssClass/index.md' %}{% endcodeBlock %}
*
* @default ''
*/
cssClass: string;
/**
* It specifies whether the Spreadsheet should be rendered with scrolling or not.
* To customize the Spreadsheet scrolling behavior, use the [`scrollSettings`](https://ej2.syncfusion.com/documentation/api/spreadsheet/#scrollSettings) property.
*
* @default true
*/
allowScrolling: boolean;
/**
* If `allowResizing` is set to true, spreadsheet columns and rows can be resized.
*
* @default true
*/
allowResizing: boolean;
/**
* If `showAggregate` is set to true, spreadsheet will show the AVERAGE, SUM, COUNT, MIN and MAX values based on the selected cells.
*
* @default true
*/
showAggregate: boolean;
/**
* Determines whether the comments pane is visible in the spreadsheet.
* When set to `true`, the comments pane is displayed; otherwise, it remains hidden.
* If not set, the pane remains hidden by default.
*
* @default false
*/
showCommentsPane: boolean;
/**
* It enables or disables the clipboard operations (cut, copy, and paste) of the Spreadsheet.
*
* @default true
*/
enableClipboard: boolean;
/**
* It enables or disables the context menu option of spreadsheet. By default, context menu will opens for row header,
* column header, sheet tabs, and cell.
*
* @default true
*/
enableContextMenu: boolean;
/**
* It allows you to interact with cell, sheet tabs, formula bar, and ribbon through the keyboard device.
*
* @default true
*/
enableKeyboardNavigation: boolean;
/**
* It enables shortcut keys to perform Spreadsheet operations like open, save, copy, paste, and more.
*
* @default true
*/
enableKeyboardShortcut: boolean;
/**
* It allows to enable/disable undo and redo functionalities.
*
* @default true
*/
allowUndoRedo: boolean;
/**
* It allows to enable/disable wrap text feature. By using this feature the wrapping applied cell text can wrap to the next line,
* if the text width exceeds the column width.
*
* @default true
*/
allowWrap: boolean;
/**
* Configures the selection settings.
*
* The selectionSettings `mode` property has three values and is described below:
*
* * None: Disables UI selection.
* * Single: Allows single selection of cell, row, or column and disables multiple selection.
* * Multiple: Allows multiple selection of cell, row, or column and disables single selection.
*
* {% codeBlock src='spreadsheet/selectionSettings/index.md' %}{% endcodeBlock %}
*
* @default { mode: 'Multiple' }
*/
selectionSettings: SelectionSettingsModel;
/**
* Configures the scroll settings.
*
* {% codeBlock src='spreadsheet/scrollSettings/index.md' %}{% endcodeBlock %}
*
* > The `allowScrolling` property should be `true`.
*
* @default { isFinite: false, enableVirtualization: true }
*/
scrollSettings: ScrollSettingsModel;
/**
* Triggers before the cell appended to the DOM.
* ```html
*
* ```
* ```typescript
* new Spreadsheet({
* beforeCellRender: (args: CellRenderEventArgs) => {
* }
* ...
* }, '#Spreadsheet');
* ```
*
* @event beforeCellRender
*/
beforeCellRender: EmitType;
/**
* Triggers before the cell or range of cells being selected.
* ```html
*
* ```
* ```typescript
* new Spreadsheet({
* beforeSelect: (args: BeforeSelectEventArgs) => {
* }
* ...
* }, '#Spreadsheet');
* ```
*
* @event beforeSelect
*/
beforeSelect: EmitType;
/**
* Triggers after the cell or range of cells is selected.
* ```html
*
* ```
* ```typescript
* new Spreadsheet({
* select: (args: SelectEventArgs) => {
* }
* ...
* }, '#Spreadsheet');
* ```
*
* @event select
*/
select: EmitType;
/**
* Triggers before opening the context menu and it allows customizing the menu items.
* ```html
*
* ```
* ```typescript
* new Spreadsheet({
* contextMenuBeforeOpen: (args: BeforeOpenCloseMenuEventArgs) => {
* }
* ...
* }, '#Spreadsheet');
* ```
*
* @event contextMenuBeforeOpen
*/
contextMenuBeforeOpen: EmitType;
/**
* Triggers before opening the file menu.
* ```html
*
* ```
* ```typescript
* new Spreadsheet({
* fileMenuBeforeOpen: (args: BeforeOpenCloseMenuEventArgs) => {
* }
* ...
* }, '#Spreadsheet');
* ```
*
* @event fileMenuBeforeOpen
*/
fileMenuBeforeOpen: EmitType;
/**
* Triggers before closing the context menu.
* ```html
*
* ```
* ```typescript
* new Spreadsheet({
* contextMenuBeforeClose: (args: BeforeOpenCloseMenuEventArgs) => {
* }
* ...
* }, '#Spreadsheet');
* ```
*
* @event contextMenuBeforeClose
*/
contextMenuBeforeClose: EmitType;
/**
* Triggers before opening the dialog box.
* ```html
*
* ```
* ```typescript
* new Spreadsheet({
* dialogBeforeOpen: (args: DialogBeforeOpenEventArgs) => {
* }
* ...
* }, '#Spreadsheet');
* ```
*
* @event dialogBeforeOpen
*/
dialogBeforeOpen: EmitType;
/**
* Triggers before closing the file menu.
* ```html
*
* ```
* ```typescript
* new Spreadsheet({
* fileMenuBeforeClose: (args: BeforeOpenCloseMenuEventArgs) => {
* }
* ...
* }, '#Spreadsheet');
* ```
*
* @event fileMenuBeforeClose
*/
fileMenuBeforeClose: EmitType;
/**
* Triggers when the context menu item is selected.
* ```html
*
* ```
* ```typescript
* new Spreadsheet({
* contextMenuItemSelect: (args: MenuSelectEventArgs) => {
* }
* ...
* }, '#Spreadsheet');
* ```
*
* @event contextMenuItemSelect
*/
contextMenuItemSelect: EmitType;
/**
* Triggers when the file menu item is selected.
* ```html
*
* ```
* ```typescript
* new Spreadsheet({
* fileMenuItemSelect: (args: MenuSelectEventArgs) => {
* }
* ...
* }, '#Spreadsheet');
* ```
*
* @event fileMenuItemSelect
*/
fileMenuItemSelect: EmitType;
/**
* Triggers before the data is populated to the worksheet.
* ```html
*
* ```
* ```typescript
* new Spreadsheet({
* beforeDataBound: (args: Object) => {
* }
* ...
* }, '#Spreadsheet');
* ```
*
* @event beforeDataBound
*/
beforeDataBound: EmitType