/* eslint-disable */
/* tslint:disable */
/**
 * This is an autogenerated file created by the Stencil compiler.
 * It contains typing information for all components that exist in this project.
 */
import { HTMLStencilElement, JSXBase } from "./stencil-public-runtime";
import { Edition, Observable, RevoGrid, RevoPlugin, Selection, ThemeSpace } from "./interfaces";
import { AutoSizeColumnConfig } from "./plugins/autoSizeColumn";
import { ColumnFilterConfig, FilterCollection } from "./plugins/filter/filter.plugin";
import { GroupingOptions } from "./plugins/groupingRow/grouping.row.types";
import { FocusedData } from "./components/revo-grid/viewport.service";
import { ColumnCollection } from "./services/column.data.provider";
import { DataInput } from "./plugins/export/types";
import { VNode } from "./stencil-public-runtime";
import { ColumnSource, RowSource } from "./components/data/columnService";
import { LogicFunction } from "./plugins/filter/filter.types";
import { FilterItem, ShowData } from "./plugins/filter/filter.pop";
import { DataSourceState, Groups } from "./store/dataSource/data.store";
import { ViewportData } from "./components/revo-grid/viewport.interfaces";
import { ElementScroll } from "./components/revo-grid/viewport.scrolling.service";
export namespace Components {
    interface RevoGrid {
        /**
          * Add trimmed by type
         */
        "addTrimmed": (trimmed: Record<number, boolean>, trimmedType?: string, type?: RevoGrid.DimensionRows) => Promise<CustomEvent<{ trimmed: Record<number, boolean>; trimmedType: string; type: string; }>>;
        /**
          * Autosize config Enable columns autoSize, for more details check @autoSizeColumn plugin By default disabled, hence operation is not resource efficient true to enable with default params (double header separator click for autosize) or provide config
         */
        "autoSizeColumn": boolean | AutoSizeColumnConfig;
        /**
          * When true cell focus appear.
         */
        "canFocus": boolean;
        /**
          * Clear current grid focus
         */
        "clearFocus": () => Promise<void>;
        /**
          * Clears column sorting
         */
        "clearSorting": () => Promise<void>;
        /**
          * Indicates default column size.
         */
        "colSize": number;
        /**
          * Types Every type represent multiple column properties Types will be merged but can be replaced with column properties
         */
        "columnTypes": { [name: string]: RevoGrid.ColumnType };
        /**
          * Columns - defines an array of grid columns. Can be column or grouped column.
         */
        "columns": (RevoGrid.ColumnRegular | RevoGrid.ColumnGrouping)[];
        /**
          * Custom editors register
         */
        "editors": Edition.Editors;
        /**
          * Enables export plugin Can be boolean Can be export options
         */
        "exporting": boolean;
        /**
          * Enables filter plugin Can be boolean Can be filter collection
         */
        "filter": boolean | ColumnFilterConfig;
        /**
          * Defines how many rows/columns should be rendered outside visible area.
         */
        "frameSize": number;
        /**
          * Provides access to column internal store observer Can be used for plugin support
          * @param type - type of column
         */
        "getColumnStore": (type?: RevoGrid.DimensionCols) => Promise<ColumnSource>;
        /**
          * Receive all columns in data source
         */
        "getColumns": () => Promise<RevoGrid.ColumnRegular[]>;
        /**
          * Get all active plugins instances
         */
        "getFocused": () => Promise<FocusedData | null>;
        /**
          * Get all active plugins instances
         */
        "getPlugins": () => Promise<RevoPlugin.Plugin[]>;
        /**
          * Get data from source
         */
        "getSource": (type?: RevoGrid.DimensionRows) => Promise<RevoGrid.DataType[]>;
        /**
          * Provides access to rows internal store observer Can be used for plugin support
          * @param type - type of source
         */
        "getSourceStore": (type?: RevoGrid.DimensionRows) => Promise<RowSource>;
        /**
          * Get data from visible part of source Trimmed/filtered rows will be excluded
          * @param type - type of source
         */
        "getVisibleSource": (type?: RevoGrid.DimensionRows) => Promise<any[]>;
        /**
          * Group models by provided properties Define properties to be groped by
         */
        "grouping": GroupingOptions;
        /**
          * Pinned bottom Source: {[T in ColumnProp]: any} - defines pinned bottom rows data source.
         */
        "pinnedBottomSource": RevoGrid.DataType[];
        /**
          * Pinned top Source: {[T in ColumnProp]: any} - defines pinned top rows data source.
         */
        "pinnedTopSource": RevoGrid.DataType[];
        /**
          * Custom grid plugins Has to be predefined during first grid init Every plugin should be inherited from BasePlugin
         */
        "plugins": RevoPlugin.PluginClass[];
        /**
          * When true, user can range selection.
         */
        "range": boolean;
        /**
          * When true, grid in read only mode.
         */
        "readonly": boolean;
        /**
          * Refreshes data viewport. Can be specific part as rgRow or pinned rgRow or 'all' by default.
         */
        "refresh": (type?: RevoGrid.DimensionRows | 'all') => Promise<void>;
        /**
          * Register new virtual node inside of grid Used for additional items creation such as plugin elements
         */
        "registerVNode": (elements: VNode[]) => Promise<void>;
        /**
          * When true, columns are resizable.
         */
        "resize": boolean;
        /**
          * Row class property Define this property in rgRow object and this will be mapped as rgRow class
         */
        "rowClass": string;
        /**
          * Row properies applied
         */
        "rowDefinitions": RevoGrid.RowDefinition[];
        /**
          * Excel like show rgRow indexe per rgRow
         */
        "rowHeaders": RevoGrid.RowHeaders | boolean;
        /**
          * Indicates default rgRow size. By default 0, means theme package size will be applied
         */
        "rowSize": number;
        /**
          * Scrolls view port to specified column index
         */
        "scrollToColumnIndex": (coordinate?: number) => Promise<void>;
        /**
          * Scrolls view port to specified column prop
         */
        "scrollToColumnProp": (prop: RevoGrid.ColumnProp) => Promise<void>;
        /**
          * Scrolls view port to coordinate
         */
        "scrollToCoordinate": (cell: Partial<Selection.Cell>) => Promise<void>;
        /**
          * Scrolls view port to specified rgRow index
         */
        "scrollToRow": (coordinate?: number) => Promise<void>;
        /**
          * Bring cell to edit mode
         */
        "setCellEdit": (rgRow: number, prop: RevoGrid.ColumnProp, rowSource?: RevoGrid.DimensionRows) => Promise<void>;
        /**
          * Source - defines main data source. Can be an Object or 2 dimensional array([][]); Keys/indexes referenced from columns Prop
         */
        "source": RevoGrid.DataType[];
        /**
          * Defines stretch strategy for columns with @StretchColumn plugin if there are more space on the right last column size would be increased
         */
        "stretch": boolean|string;
        /**
          * Theme name
         */
        "theme": ThemeSpace.Theme;
        /**
          * Trimmed rows Functionality which allows to hide rows from main data set
          * @trimmedRows are physical rgRow indexes to hide
         */
        "trimmedRows": Record<number, boolean>;
        /**
          * Update column sorting
          * @param column - full column details to update
          * @param index - virtual column index
          * @param order - order to apply
         */
        "updateColumnSorting": (column: RevoGrid.ColumnRegular, index: number, order: 'asc' | 'desc', additive: boolean) => Promise<RevoGrid.ColumnRegular>;
        /**
          * Update columns
         */
        "updateColumns": (cols: RevoGrid.ColumnRegular[]) => Promise<void>;
        /**
          * When true enable clipboard.
         */
        "useClipboard": boolean;
    }
    interface RevogrClipboard {
        "doCopy": (e: DataTransfer, data?: RevoGrid.DataFormat[][]) => Promise<void>;
    }
    interface RevogrData {
        "canDrag": boolean;
        /**
          * Static stores, not expected to change during component lifetime
         */
        "colData": ColumnSource;
        "dataStore": RowSource;
        "dimensionRow": Observable<RevoGrid.DimensionSettingsState>;
        "range": boolean;
        "readonly": boolean;
        "rowClass": string;
        "rowSelectionStore": Observable<Selection.SelectionStoreState>;
        "viewportCol": Observable<RevoGrid.ViewportState>;
        "viewportRow": Observable<RevoGrid.ViewportState>;
    }
    interface RevogrEdit {
        "column": RevoGrid.ColumnRegular | null;
        "editCell": Edition.EditCell;
        /**
          * Custom editors register
         */
        "editor": Edition.EditorCtr | null;
    }
    interface RevogrFilterPanel {
        "filterEntities": Record<string, LogicFunction>;
        "filterNames": Record<string, string>;
        "filterTypes": Record<string, string[]>;
        "getChanges": () => Promise<ShowData>;
        "show": (newEntity?: ShowData) => Promise<void>;
        "uuid": string;
    }
    interface RevogrFocus {
        "dimensionCol": Observable<RevoGrid.DimensionSettingsState>;
        "dimensionRow": Observable<RevoGrid.DimensionSettingsState>;
        /**
          * Dynamic stores
         */
        "selectionStore": Observable<Selection.SelectionStoreState>;
    }
    interface RevogrHeader {
        "canResize": boolean;
        "colData": RevoGrid.ColumnRegular[];
        "columnFilter": boolean;
        "dimensionCol": Observable<RevoGrid.DimensionSettingsState>;
        "groupingDepth": number;
        "groups": Groups;
        "parent": string;
        "selectionStore": Observable<Selection.SelectionStoreState>;
        "viewportCol": Observable<RevoGrid.ViewportState>;
    }
    interface RevogrOrderEditor {
        "clearOrder": () => Promise<void>;
        /**
          * Static stores, not expected to change during component lifetime
         */
        "dataStore": Observable<DataSourceState<RevoGrid.DataType, RevoGrid.DimensionRows>>;
        "dimensionCol": Observable<RevoGrid.DimensionSettingsState>;
        "dimensionRow": Observable<RevoGrid.DimensionSettingsState>;
        "dragStart": (e: MouseEvent) => Promise<void>;
        "endOrder": (e: MouseEvent) => Promise<void>;
        "parent": HTMLElement;
    }
    interface RevogrOverlaySelection {
        "canDrag": boolean;
        "colData": Observable<DataSourceState<RevoGrid.ColumnRegular, RevoGrid.DimensionCols>>;
        /**
          * Static stores, not expected to change during component lifetime
         */
        "dataStore": Observable<DataSourceState<RevoGrid.DataType, RevoGrid.DimensionRows>>;
        "dimensionCol": Observable<RevoGrid.DimensionSettingsState>;
        "dimensionRow": Observable<RevoGrid.DimensionSettingsState>;
        /**
          * Custom editors register
         */
        "editors": Edition.Editors;
        /**
          * Last cell position
         */
        "lastCell": Selection.Cell;
        "range": boolean;
        "readonly": boolean;
        /**
          * Dynamic stores
         */
        "selectionStore": Observable<Selection.SelectionStoreState>;
        "useClipboard": boolean;
    }
    interface RevogrRowHeaders {
        "dataPorts": ViewportData[];
        "headerProp": Record<string, any>;
        "height": number;
        "resize": boolean;
        "rowHeaderColumn": RevoGrid.RowHeaders;
        "uiid": string;
    }
    interface RevogrScrollVirtual {
        "changeScroll": (e: RevoGrid.ViewPortScrollEvent) => Promise<RevoGrid.ViewPortScrollEvent>;
        "dimension": RevoGrid.DimensionType;
        "dimensionStore": Observable<RevoGrid.DimensionSettingsState>;
        "setScroll": (e: RevoGrid.ViewPortScrollEvent) => Promise<void>;
        "viewportStore": Observable<RevoGrid.ViewportState>;
    }
    interface RevogrTempRange {
        "dimensionCol": Observable<RevoGrid.DimensionSettingsState>;
        "dimensionRow": Observable<RevoGrid.DimensionSettingsState>;
        /**
          * Dynamic stores
         */
        "selectionStore": Observable<Selection.SelectionStoreState>;
    }
    interface RevogrViewportScroll {
        /**
          * update on delta in case we don't know existing position or external change
          * @param e
         */
        "changeScroll": (e: RevoGrid.ViewPortScrollEvent) => Promise<RevoGrid.ViewPortScrollEvent>;
        /**
          * Height of inner content
         */
        "contentHeight": number;
        /**
          * Width of inner content
         */
        "contentWidth": number;
        "setScroll": (e: RevoGrid.ViewPortScrollEvent) => Promise<void>;
    }
}
declare global {
    interface HTMLRevoGridElement extends Components.RevoGrid, HTMLStencilElement {
    }
    var HTMLRevoGridElement: {
        prototype: HTMLRevoGridElement;
        new (): HTMLRevoGridElement;
    };
    interface HTMLRevogrClipboardElement extends Components.RevogrClipboard, HTMLStencilElement {
    }
    var HTMLRevogrClipboardElement: {
        prototype: HTMLRevogrClipboardElement;
        new (): HTMLRevogrClipboardElement;
    };
    interface HTMLRevogrDataElement extends Components.RevogrData, HTMLStencilElement {
    }
    var HTMLRevogrDataElement: {
        prototype: HTMLRevogrDataElement;
        new (): HTMLRevogrDataElement;
    };
    interface HTMLRevogrEditElement extends Components.RevogrEdit, HTMLStencilElement {
    }
    var HTMLRevogrEditElement: {
        prototype: HTMLRevogrEditElement;
        new (): HTMLRevogrEditElement;
    };
    interface HTMLRevogrFilterPanelElement extends Components.RevogrFilterPanel, HTMLStencilElement {
    }
    var HTMLRevogrFilterPanelElement: {
        prototype: HTMLRevogrFilterPanelElement;
        new (): HTMLRevogrFilterPanelElement;
    };
    interface HTMLRevogrFocusElement extends Components.RevogrFocus, HTMLStencilElement {
    }
    var HTMLRevogrFocusElement: {
        prototype: HTMLRevogrFocusElement;
        new (): HTMLRevogrFocusElement;
    };
    interface HTMLRevogrHeaderElement extends Components.RevogrHeader, HTMLStencilElement {
    }
    var HTMLRevogrHeaderElement: {
        prototype: HTMLRevogrHeaderElement;
        new (): HTMLRevogrHeaderElement;
    };
    interface HTMLRevogrOrderEditorElement extends Components.RevogrOrderEditor, HTMLStencilElement {
    }
    var HTMLRevogrOrderEditorElement: {
        prototype: HTMLRevogrOrderEditorElement;
        new (): HTMLRevogrOrderEditorElement;
    };
    interface HTMLRevogrOverlaySelectionElement extends Components.RevogrOverlaySelection, HTMLStencilElement {
    }
    var HTMLRevogrOverlaySelectionElement: {
        prototype: HTMLRevogrOverlaySelectionElement;
        new (): HTMLRevogrOverlaySelectionElement;
    };
    interface HTMLRevogrRowHeadersElement extends Components.RevogrRowHeaders, HTMLStencilElement {
    }
    var HTMLRevogrRowHeadersElement: {
        prototype: HTMLRevogrRowHeadersElement;
        new (): HTMLRevogrRowHeadersElement;
    };
    interface HTMLRevogrScrollVirtualElement extends Components.RevogrScrollVirtual, HTMLStencilElement {
    }
    var HTMLRevogrScrollVirtualElement: {
        prototype: HTMLRevogrScrollVirtualElement;
        new (): HTMLRevogrScrollVirtualElement;
    };
    interface HTMLRevogrTempRangeElement extends Components.RevogrTempRange, HTMLStencilElement {
    }
    var HTMLRevogrTempRangeElement: {
        prototype: HTMLRevogrTempRangeElement;
        new (): HTMLRevogrTempRangeElement;
    };
    interface HTMLRevogrViewportScrollElement extends Components.RevogrViewportScroll, HTMLStencilElement {
    }
    var HTMLRevogrViewportScrollElement: {
        prototype: HTMLRevogrViewportScrollElement;
        new (): HTMLRevogrViewportScrollElement;
    };
    interface HTMLElementTagNameMap {
        "revo-grid": HTMLRevoGridElement;
        "revogr-clipboard": HTMLRevogrClipboardElement;
        "revogr-data": HTMLRevogrDataElement;
        "revogr-edit": HTMLRevogrEditElement;
        "revogr-filter-panel": HTMLRevogrFilterPanelElement;
        "revogr-focus": HTMLRevogrFocusElement;
        "revogr-header": HTMLRevogrHeaderElement;
        "revogr-order-editor": HTMLRevogrOrderEditorElement;
        "revogr-overlay-selection": HTMLRevogrOverlaySelectionElement;
        "revogr-row-headers": HTMLRevogrRowHeadersElement;
        "revogr-scroll-virtual": HTMLRevogrScrollVirtualElement;
        "revogr-temp-range": HTMLRevogrTempRangeElement;
        "revogr-viewport-scroll": HTMLRevogrViewportScrollElement;
    }
}
declare namespace LocalJSX {
    interface RevoGrid {
        /**
          * Autosize config Enable columns autoSize, for more details check @autoSizeColumn plugin By default disabled, hence operation is not resource efficient true to enable with default params (double header separator click for autosize) or provide config
         */
        "autoSizeColumn"?: boolean | AutoSizeColumnConfig;
        /**
          * When true cell focus appear.
         */
        "canFocus"?: boolean;
        /**
          * Indicates default column size.
         */
        "colSize"?: number;
        /**
          * Types Every type represent multiple column properties Types will be merged but can be replaced with column properties
         */
        "columnTypes"?: { [name: string]: RevoGrid.ColumnType };
        /**
          * Columns - defines an array of grid columns. Can be column or grouped column.
         */
        "columns"?: (RevoGrid.ColumnRegular | RevoGrid.ColumnGrouping)[];
        /**
          * Custom editors register
         */
        "editors"?: Edition.Editors;
        /**
          * Enables export plugin Can be boolean Can be export options
         */
        "exporting"?: boolean;
        /**
          * Enables filter plugin Can be boolean Can be filter collection
         */
        "filter"?: boolean | ColumnFilterConfig;
        /**
          * Defines how many rows/columns should be rendered outside visible area.
         */
        "frameSize"?: number;
        /**
          * Group models by provided properties Define properties to be groped by
         */
        "grouping"?: GroupingOptions;
        /**
          * After column resize Get resized columns
         */
        "onAftercolumnresize"?: (event: CustomEvent<Record<RevoGrid.ColumnProp, RevoGrid.ColumnRegular>>) => void;
        /**
          * Column updated
         */
        "onAftercolumnsset"?: (event: CustomEvent<{
    columns: ColumnCollection;
    order: Record<RevoGrid.ColumnProp, 'asc' | 'desc'>;
  }>) => void;
        /**
          * After edit. Triggered when after data applied or Range changeged.
         */
        "onAfteredit"?: (event: CustomEvent<Edition.BeforeSaveDataDetails | Edition.BeforeRangeSaveDataDetails>) => void;
        /**
          * After rows updated
         */
        "onAftersourceset"?: (event: CustomEvent<{
    type: RevoGrid.DimensionRows;
    source: RevoGrid.DataType[];
  }>) => void;
        /**
          * Notify trimmed applied
         */
        "onAftertrimmed"?: (event: CustomEvent<any>) => void;
        /**
          * Before range apply. Triggered before range applied. Use e.preventDefault() to prevent range.
         */
        "onBeforeaange"?: (event: CustomEvent<Selection.ChangedRange>) => void;
        /**
          * Before autofill. Triggered before autofill applied. Use e.preventDefault() to prevent edit data apply.
         */
        "onBeforeautofill"?: (event: CustomEvent<Selection.ChangedRange>) => void;
        /**
          * Before cell focus changed. Use e.preventDefault() to prevent cell focus change.
         */
        "onBeforecellfocus"?: (event: CustomEvent<Edition.BeforeSaveDataDetails>) => void;
        /**
          * Before column applied but after column set gathered and viewport updated
         */
        "onBeforecolumnapplied"?: (event: CustomEvent<ColumnCollection>) => void;
        /**
          * Before column update
         */
        "onBeforecolumnsset"?: (event: CustomEvent<ColumnCollection>) => void;
        /**
          * Before edit event. Triggered before edit data applied. Use e.preventDefault() to prevent edit data set and use you own. Use e.val = {your value} to replace edit result with your own.
         */
        "onBeforeedit"?: (event: CustomEvent<Edition.BeforeSaveDataDetails>) => void;
        /**
          * Before edit started Use e.preventDefault() to prevent edit
         */
        "onBeforeeditstart"?: (event: CustomEvent<Edition.BeforeSaveDataDetails>) => void;
        /**
          * Before export Use e.preventDefault() to prevent export Replace data in Event in case you want to modify it in export
         */
        "onBeforeexport"?: (event: CustomEvent<DataInput>) => void;
        /**
          * Before filter applied to data source Use e.preventDefault() to prevent cell focus change Update @collection if you wish to change filters
         */
        "onBeforefilterapply"?: (event: CustomEvent<{ collection: FilterCollection }>) => void;
        /**
          * Before filter trimmed values Use e.preventDefault() to prevent value trimming and filter apply Update @collection if you wish to change filters Update @itemsToFilter if you wish to filter indexes of trimming
         */
        "onBeforefiltertrimmed"?: (event: CustomEvent<{ collection: FilterCollection; itemsToFilter: Record<number, boolean> }>) => void;
        /**
          * Before grid focus lost happened. Use e.preventDefault() to prevent cell focus change.
         */
        "onBeforefocuslost"?: (event: CustomEvent<FocusedData|null>) => void;
        /**
          * Before range edit event. Triggered before range data applied, when range selection happened. Use e.preventDefault() to prevent edit data set and use you own.
         */
        "onBeforerangeedit"?: (event: CustomEvent<Edition.BeforeRangeSaveDataDetails>) => void;
        /**
          * Before sorting event. Initial sorting triggered, if this event stops no other event called. Use e.preventDefault() to prevent sorting.
         */
        "onBeforesorting"?: (event: CustomEvent<{
    column: RevoGrid.ColumnRegular;
    order: 'desc' | 'asc';
    additive: boolean;
  }>) => void;
        /**
          * Before sorting apply. Use e.preventDefault() to prevent sorting data change.
         */
        "onBeforesortingapply"?: (event: CustomEvent<{
    column: RevoGrid.ColumnRegular;
    order: 'desc' | 'asc';
    additive: boolean;
  }>) => void;
        /**
          * Before data apply. You can override data source here
         */
        "onBeforesourceset"?: (event: CustomEvent<{
    type: RevoGrid.DimensionRows;
    source: RevoGrid.DataType[];
  }>) => void;
        /**
          * Before source update sorting apply. Use this event if you intended to prevent sorting on data update. Use e.preventDefault() to prevent sorting data change during rows source update.
         */
        "onBeforesourcesortingapply"?: (event: CustomEvent<any>) => void;
        /**
          * Before trimmed values Use e.preventDefault() to prevent value trimming Update @trimmed if you wish to filter indexes of trimming
         */
        "onBeforetrimmed"?: (event: CustomEvent<{ trimmed: Record<number, boolean>; trimmedType: string; type: string }>) => void;
        /**
          * On header click.
         */
        "onHeaderclick"?: (event: CustomEvent<RevoGrid.ColumnRegular>) => void;
        /**
          * Row order change started. Use e.preventDefault() to prevent rgRow order change. Use e.text = 'new name' to change item name on start.
         */
        "onRowdragstart"?: (event: CustomEvent<{ pos: RevoGrid.PositionItem; text: string }>) => void;
        /**
          * Before rgRow order apply. Use e.preventDefault() to prevent rgRow order change.
         */
        "onRoworderchanged"?: (event: CustomEvent<{ from: number; to: number }>) => void;
        /**
          * Triggered when view port scrolled
         */
        "onViewportscroll"?: (event: CustomEvent<RevoGrid.ViewPortScrollEvent>) => void;
        /**
          * Pinned bottom Source: {[T in ColumnProp]: any} - defines pinned bottom rows data source.
         */
        "pinnedBottomSource"?: RevoGrid.DataType[];
        /**
          * Pinned top Source: {[T in ColumnProp]: any} - defines pinned top rows data source.
         */
        "pinnedTopSource"?: RevoGrid.DataType[];
        /**
          * Custom grid plugins Has to be predefined during first grid init Every plugin should be inherited from BasePlugin
         */
        "plugins"?: RevoPlugin.PluginClass[];
        /**
          * When true, user can range selection.
         */
        "range"?: boolean;
        /**
          * When true, grid in read only mode.
         */
        "readonly"?: boolean;
        /**
          * When true, columns are resizable.
         */
        "resize"?: boolean;
        /**
          * Row class property Define this property in rgRow object and this will be mapped as rgRow class
         */
        "rowClass"?: string;
        /**
          * Row properies applied
         */
        "rowDefinitions"?: RevoGrid.RowDefinition[];
        /**
          * Excel like show rgRow indexe per rgRow
         */
        "rowHeaders"?: RevoGrid.RowHeaders | boolean;
        /**
          * Indicates default rgRow size. By default 0, means theme package size will be applied
         */
        "rowSize"?: number;
        /**
          * Source - defines main data source. Can be an Object or 2 dimensional array([][]); Keys/indexes referenced from columns Prop
         */
        "source"?: RevoGrid.DataType[];
        /**
          * Defines stretch strategy for columns with @StretchColumn plugin if there are more space on the right last column size would be increased
         */
        "stretch"?: boolean|string;
        /**
          * Theme name
         */
        "theme"?: ThemeSpace.Theme;
        /**
          * Trimmed rows Functionality which allows to hide rows from main data set
          * @trimmedRows are physical rgRow indexes to hide
         */
        "trimmedRows"?: Record<number, boolean>;
        /**
          * When true enable clipboard.
         */
        "useClipboard"?: boolean;
    }
    interface RevogrClipboard {
        "onCopyRegion"?: (event: CustomEvent<DataTransfer>) => void;
        "onPasteRegion"?: (event: CustomEvent<string[][]>) => void;
    }
    interface RevogrData {
        "canDrag"?: boolean;
        /**
          * Static stores, not expected to change during component lifetime
         */
        "colData"?: ColumnSource;
        "dataStore"?: RowSource;
        "dimensionRow"?: Observable<RevoGrid.DimensionSettingsState>;
        "onDragStartCell"?: (event: CustomEvent<MouseEvent>) => void;
        "range"?: boolean;
        "readonly"?: boolean;
        "rowClass"?: string;
        "rowSelectionStore"?: Observable<Selection.SelectionStoreState>;
        "viewportCol"?: Observable<RevoGrid.ViewportState>;
        "viewportRow"?: Observable<RevoGrid.ViewportState>;
    }
    interface RevogrEdit {
        "column"?: RevoGrid.ColumnRegular | null;
        "editCell"?: Edition.EditCell;
        /**
          * Custom editors register
         */
        "editor"?: Edition.EditorCtr | null;
        "onCellEdit"?: (event: CustomEvent<Edition.SaveDataDetails>) => void;
        /**
          * Close editor event
         */
        "onCloseEdit"?: (event: CustomEvent<boolean | undefined>) => void;
    }
    interface RevogrFilterPanel {
        "filterEntities"?: Record<string, LogicFunction>;
        "filterNames"?: Record<string, string>;
        "filterTypes"?: Record<string, string[]>;
        "onFilterChange"?: (event: CustomEvent<FilterItem>) => void;
        "uuid"?: string;
    }
    interface RevogrFocus {
        "dimensionCol"?: Observable<RevoGrid.DimensionSettingsState>;
        "dimensionRow"?: Observable<RevoGrid.DimensionSettingsState>;
        /**
          * Dynamic stores
         */
        "selectionStore"?: Observable<Selection.SelectionStoreState>;
    }
    interface RevogrHeader {
        "canResize"?: boolean;
        "colData"?: RevoGrid.ColumnRegular[];
        "columnFilter"?: boolean;
        "dimensionCol"?: Observable<RevoGrid.DimensionSettingsState>;
        "groupingDepth"?: number;
        "groups"?: Groups;
        "onHeaderdblClick"?: (event: CustomEvent<RevoGrid.InitialHeaderClick>) => void;
        "onHeaderresize"?: (event: CustomEvent<RevoGrid.ViewSettingSizeProp>) => void;
        "onInitialHeaderClick"?: (event: CustomEvent<RevoGrid.InitialHeaderClick>) => void;
        "parent"?: string;
        "selectionStore"?: Observable<Selection.SelectionStoreState>;
        "viewportCol"?: Observable<RevoGrid.ViewportState>;
    }
    interface RevogrOrderEditor {
        /**
          * Static stores, not expected to change during component lifetime
         */
        "dataStore"?: Observable<DataSourceState<RevoGrid.DataType, RevoGrid.DimensionRows>>;
        "dimensionCol"?: Observable<RevoGrid.DimensionSettingsState>;
        "dimensionRow"?: Observable<RevoGrid.DimensionSettingsState>;
        /**
          * Row dragged, new range ready to be applied
         */
        "onInitialRowDropped"?: (event: CustomEvent<{ from: number; to: number }>) => void;
        /**
          * Row move
         */
        "onInternalRowDrag"?: (event: CustomEvent<RevoGrid.PositionItem>) => void;
        /**
          * Row drag ended
         */
        "onInternalRowDragEnd"?: (event: CustomEvent<any>) => void;
        /**
          * Row drag started
         */
        "onInternalRowDragStart"?: (event: CustomEvent<{
    cell: Selection.Cell;
    text: string;
    pos: RevoGrid.PositionItem;
    event: MouseEvent;
  }>) => void;
        /**
          * Row mouse move
         */
        "onInternalRowMouseMove"?: (event: CustomEvent<Selection.Cell>) => void;
        "parent"?: HTMLElement;
    }
    interface RevogrOverlaySelection {
        "canDrag"?: boolean;
        "colData"?: Observable<DataSourceState<RevoGrid.ColumnRegular, RevoGrid.DimensionCols>>;
        /**
          * Static stores, not expected to change during component lifetime
         */
        "dataStore"?: Observable<DataSourceState<RevoGrid.DataType, RevoGrid.DimensionRows>>;
        "dimensionCol"?: Observable<RevoGrid.DimensionSettingsState>;
        "dimensionRow"?: Observable<RevoGrid.DimensionSettingsState>;
        /**
          * Custom editors register
         */
        "editors"?: Edition.Editors;
        /**
          * Last cell position
         */
        "lastCell"?: Selection.Cell;
        "onFocusCell"?: (event: CustomEvent<Selection.FocusedCells>) => void;
        "onInternalCellEdit"?: (event: CustomEvent<Edition.BeforeSaveDataDetails>) => void;
        "onInternalCopy"?: (event: CustomEvent<any>) => void;
        "onInternalFocusCell"?: (event: CustomEvent<Edition.BeforeSaveDataDetails>) => void;
        "onInternalPaste"?: (event: CustomEvent<any>) => void;
        /**
          * Range data apply
         */
        "onInternalRangeDataApply"?: (event: CustomEvent<Edition.BeforeRangeSaveDataDetails>) => void;
        /**
          * Selection range changed
         */
        "onInternalSelectionChanged"?: (event: CustomEvent<Selection.ChangedRange>) => void;
        "onSetEdit"?: (event: CustomEvent<Edition.BeforeEdit>) => void;
        "onSetRange"?: (event: CustomEvent<Selection.RangeArea>) => void;
        "onSetTempRange"?: (event: CustomEvent<Selection.TempRange | null>) => void;
        "range"?: boolean;
        "readonly"?: boolean;
        /**
          * Dynamic stores
         */
        "selectionStore"?: Observable<Selection.SelectionStoreState>;
        "useClipboard"?: boolean;
    }
    interface RevogrRowHeaders {
        "dataPorts"?: ViewportData[];
        "headerProp"?: Record<string, any>;
        "height"?: number;
        "onElementToScroll"?: (event: CustomEvent<ElementScroll>) => void;
        "onScrollViewport"?: (event: CustomEvent<RevoGrid.ViewPortScrollEvent>) => void;
        "resize"?: boolean;
        "rowHeaderColumn"?: RevoGrid.RowHeaders;
        "uiid"?: string;
    }
    interface RevogrScrollVirtual {
        "dimension"?: RevoGrid.DimensionType;
        "dimensionStore"?: Observable<RevoGrid.DimensionSettingsState>;
        "onScrollVirtual"?: (event: CustomEvent<RevoGrid.ViewPortScrollEvent>) => void;
        "viewportStore"?: Observable<RevoGrid.ViewportState>;
    }
    interface RevogrTempRange {
        "dimensionCol"?: Observable<RevoGrid.DimensionSettingsState>;
        "dimensionRow"?: Observable<RevoGrid.DimensionSettingsState>;
        /**
          * Dynamic stores
         */
        "selectionStore"?: Observable<Selection.SelectionStoreState>;
    }
    interface RevogrViewportScroll {
        /**
          * Height of inner content
         */
        "contentHeight"?: number;
        /**
          * Width of inner content
         */
        "contentWidth"?: number;
        "onResizeViewport"?: (event: CustomEvent<RevoGrid.ViewPortResizeEvent>) => void;
        "onScrollViewport"?: (event: CustomEvent<RevoGrid.ViewPortScrollEvent>) => void;
        "onScrollchange"?: (event: CustomEvent<{ type: RevoGrid.DimensionType; hasScroll: boolean; }>) => void;
    }
    interface IntrinsicElements {
        "revo-grid": RevoGrid;
        "revogr-clipboard": RevogrClipboard;
        "revogr-data": RevogrData;
        "revogr-edit": RevogrEdit;
        "revogr-filter-panel": RevogrFilterPanel;
        "revogr-focus": RevogrFocus;
        "revogr-header": RevogrHeader;
        "revogr-order-editor": RevogrOrderEditor;
        "revogr-overlay-selection": RevogrOverlaySelection;
        "revogr-row-headers": RevogrRowHeaders;
        "revogr-scroll-virtual": RevogrScrollVirtual;
        "revogr-temp-range": RevogrTempRange;
        "revogr-viewport-scroll": RevogrViewportScroll;
    }
}
export { LocalJSX as JSX };
declare module "@stencil/core" {
    export namespace JSX {
        interface IntrinsicElements {
            "revo-grid": LocalJSX.RevoGrid & JSXBase.HTMLAttributes<HTMLRevoGridElement>;
            "revogr-clipboard": LocalJSX.RevogrClipboard & JSXBase.HTMLAttributes<HTMLRevogrClipboardElement>;
            "revogr-data": LocalJSX.RevogrData & JSXBase.HTMLAttributes<HTMLRevogrDataElement>;
            "revogr-edit": LocalJSX.RevogrEdit & JSXBase.HTMLAttributes<HTMLRevogrEditElement>;
            "revogr-filter-panel": LocalJSX.RevogrFilterPanel & JSXBase.HTMLAttributes<HTMLRevogrFilterPanelElement>;
            "revogr-focus": LocalJSX.RevogrFocus & JSXBase.HTMLAttributes<HTMLRevogrFocusElement>;
            "revogr-header": LocalJSX.RevogrHeader & JSXBase.HTMLAttributes<HTMLRevogrHeaderElement>;
            "revogr-order-editor": LocalJSX.RevogrOrderEditor & JSXBase.HTMLAttributes<HTMLRevogrOrderEditorElement>;
            "revogr-overlay-selection": LocalJSX.RevogrOverlaySelection & JSXBase.HTMLAttributes<HTMLRevogrOverlaySelectionElement>;
            "revogr-row-headers": LocalJSX.RevogrRowHeaders & JSXBase.HTMLAttributes<HTMLRevogrRowHeadersElement>;
            "revogr-scroll-virtual": LocalJSX.RevogrScrollVirtual & JSXBase.HTMLAttributes<HTMLRevogrScrollVirtualElement>;
            "revogr-temp-range": LocalJSX.RevogrTempRange & JSXBase.HTMLAttributes<HTMLRevogrTempRangeElement>;
            "revogr-viewport-scroll": LocalJSX.RevogrViewportScroll & JSXBase.HTMLAttributes<HTMLRevogrViewportScrollElement>;
        }
    }
}
