import { default as CoreFeature } from '../../core/CoreFeature';
import { ColumnDefinition, SheetDefinition } from '../../core/types';
import { default as GridCalculator } from './GridCalculator';
import { default as SheetComponent } from './SheetComponent';
import { default as Spreadsheet } from './Spreadsheet';

type RowData = Record<string, unknown> & {
    _id: string;
};
export default class Sheet extends CoreFeature {
    spreadsheetManager: Spreadsheet;
    definition: SheetDefinition;
    title: string;
    key: string;
    rowCount: number;
    columnCount: number;
    data: unknown[][];
    element: HTMLElement | null;
    isActive: boolean;
    grid: GridCalculator;
    defaultColumnDefinition: ColumnDefinition;
    columnDefinition: ColumnDefinition;
    scrollTop: number;
    scrollLeft: number;
    columnDefs: ColumnDefinition[];
    rowDefs: RowData[];
    columnFields: string[];
    columns: string[];
    rows: number[];
    constructor(spreadsheetManager: Spreadsheet, definition: SheetDefinition);
    initialize(): void;
    reinitialize(): void;
    initializeElement(): void;
    initializeColumns(): void;
    initializeRows(): void;
    unload(): void;
    load(): void;
    getComponent(): SheetComponent;
    getDefinition(): SheetDefinition;
    getData(full?: boolean): unknown[][];
    setData(data: unknown[][]): void;
    clear(): void;
    setTitle(title: string): void;
    setRows(rows: number): void;
    setColumns(columns: number): void;
    remove(): void;
    destroy(): void;
    active(): void;
}
export {};
