interface CellAddress {
    sheetName?: string;
    address: string;
    row: number;
    col: number;
    top?: number;
    bottom?: number;
    left?: number;
    right?: number;
}
type Cell = CellAddress & any;
type Row = Cell[];
type Sheet = Row[];
type Sheets = Record<string, Sheet>;
declare class CellMatrix {
    template: any;
    sheets: Sheets;
    constructor(template?: any);
    addCell(addressStr: string): void;
    getCell(addressStr: string): Cell;
    findCell(addressStr: string): Cell | undefined;
    findCellAt(sheetName: string, rowNumber: number, colNumber: number): Cell | undefined;
    addCellEx(address: CellAddress): void;
    getCellEx(address: CellAddress): Cell;
    findCellEx(address: CellAddress, create: boolean): Cell | undefined;
    getCellAt(sheetName: string, rowNumber: number, colNumber: number): Cell;
    removeCellEx(address: CellAddress): void;
    forEachInSheet(sheetName: string, callback: (cell: Cell, rowNumber: number, colNumber: number) => void): void;
    forEach(callback: (cell: Cell) => void): void;
    map<T>(callback: (cell: Cell) => T): T[];
    findSheet(address: CellAddress, create: boolean): Sheet | undefined;
    findSheetRow(sheet: Sheet | undefined, address: CellAddress, create: boolean): Row | undefined;
    findRowCell(row: Row | undefined, address: CellAddress, create: boolean): Cell | undefined;
    spliceRows(sheetName: string, start: number, numDelete: number, numInsert: number): void;
    spliceColumns(sheetName: string, start: number, numDelete: number, numInsert: number): void;
}
export { CellMatrix };
