import type { ColumnDefine } from '@visactor/vtable';
import { TYPES as VTableTypes, themes as VTableThemes } from '@visactor/vtable';
import type { CellValue, MainMenuItem } from './base';
import type { IFilterState } from './filter';
import type { TableSeriesNumberOptions, ImportResult } from '@visactor/vtable-plugins';
import type { SortState } from '@visactor/vtable/es/ts-types';
export { VTableThemes, VTableTypes, ImportResult };
export interface IFilterConfig {
    filterModes?: ('byValue' | 'byCondition')[];
}
export interface IColumnDefine extends Omit<ColumnDefine, 'field'> {
    filter?: boolean;
}
export interface ISheetDefine {
    sheetTitle: string;
    sheetKey: string;
    columnCount?: number;
    rowCount?: number;
    columns?: IColumnDefine[];
    data?: (CellValue[] | null)[];
    active?: boolean;
    cellMerge?: VTableTypes.CustomMergeCellArray;
    frozenRowCount?: number;
    frozenColCount?: number;
    showHeader?: boolean;
    firstRowAsHeader?: boolean;
    formulas?: Record<string, string>;
    filter?: boolean | IFilterConfig;
    filterState?: IFilterState;
    sortState?: SortState[] | SortState | null;
    theme?: IThemeDefine;
    columnWidthConfig?: {
        key: string | number;
        width: number;
    }[];
    rowHeightConfig?: {
        key: number;
        height: number;
    }[];
    dragOrder?: {
        enableDragColumnOrder?: boolean;
        enableDragRowOrder?: boolean;
    };
}
export interface IThemeDefine {
    rowSeriesNumberCellStyle?: TableSeriesNumberOptions['rowSeriesNumberCellStyle'];
    colSeriesNumberCellStyle?: TableSeriesNumberOptions['colSeriesNumberCellStyle'];
    menuStyle?: {
        fontFamily?: string;
        fontSize?: number;
        color?: string;
        padding?: number[];
        bgColor?: string;
    };
    tableTheme: VTableThemes.ITableThemeDefine;
}
export interface IVTableSheetOptions {
    sheets: ISheetDefine[];
    showToolbar?: boolean;
    showFormulaBar?: boolean;
    showSheetTab?: boolean;
    VTablePluginModules?: {
        module: any;
        moduleOptions?: any;
        disabled?: boolean;
    }[];
    mainMenu?: {
        show?: boolean;
        items?: MainMenuItem[];
    };
    theme?: IThemeDefine;
    defaultRowHeight?: number;
    defaultColWidth?: number;
    dragOrder: {
        enableDragColumnOrder: true;
        enableDragRowOrder: true;
    };
}
export * from './base';
export * from './event';
export * from './formula';
export * from './filter';
export * from './sheet';
