import { Option } from '@fable-org/fable-library-js/Option.js';
import { ISet, IMap } from '@fable-org/fable-library-js/Util.js';
import { int32 } from '@fable-org/fable-library-js/Int32.js';
import { FsCell } from './FsCell.fs.js';
import { FsAddress } from '../FsAddress.fs.js';
import { TypeInfo } from '@fable-org/fable-library-js/Reflection.js';
export declare function Dictionary_tryGet<Key, Value>(k: Key, dict: IMap<Key, Value>): Option<Value>;
export declare class FsCellsCollection {
    _columnsUsed: IMap<int32, int32>;
    _deleted: IMap<int32, ISet<int32>>;
    _rowsCollection: IMap<int32, IMap<int32, FsCell>>;
    _maxColumnUsed: int32;
    _maxRowUsed: int32;
    _rowsUsed: IMap<int32, int32>;
    _count: int32;
    constructor();
    get Count(): int32;
    set Count(count: int32);
    get MaxRowNumber(): int32;
    get MaxColumnNumber(): int32;
    Copy(): FsCellsCollection;
    static copy(cellsCollection: FsCellsCollection): FsCellsCollection;
    static IncrementUsage(dictionary: IMap<int32, int32>, key: int32): void;
    static DecrementUsage(dictionary: IMap<int32, int32>, key: int32): boolean;
    static createFromCells(cells: Iterable<FsCell>): FsCellsCollection;
    Clear(): FsCellsCollection;
    Add(cell: FsCell, row?: int32, column?: int32): void;
    static addCellWithIndeces(rowIndex: int32, colIndex: int32, cell: FsCell, cellsCollection: FsCellsCollection): void;
    static addCell(cell: FsCell, cellsCollection: FsCellsCollection): FsCellsCollection;
    AddMany(cells: Iterable<FsCell>): void;
    static addCells(cells: Iterable<FsCell>, cellsCollection: FsCellsCollection): FsCellsCollection;
    ContainsCellAt(rowIndex: int32, colIndex: int32): boolean;
    static containsCellAt(rowIndex: int32, colIndex: int32, cellsCollection: FsCellsCollection): boolean;
    RemoveCellAt(row: int32, column: int32): void;
    static removeCellAt(rowIndex: int32, colIndex: int32, cellsCollection: FsCellsCollection): FsCellsCollection;
    TryRemoveValueAt(rowIndex: int32, colIndex: int32): void;
    static tryRemoveValueAt(rowIndex: int32, colIndex: int32, cellsCollection: FsCellsCollection): FsCellsCollection;
    RemoveValueAt(rowIndex: int32, colIndex: int32): void;
    static removeValueAt(rowIndex: int32, colIndex: int32, cellsCollection: FsCellsCollection): FsCellsCollection;
    GetCells(): Iterable<FsCell>;
    static getCells(cellsCollection: FsCellsCollection): Iterable<FsCell>;
    GetCellsInRangeBy(rowStart: int32, columnStart: int32, rowEnd: int32, columnEnd: int32, predicate: ((arg0: FsCell) => boolean)): Iterable<FsCell>;
    static filterCellsFromTo(rowStart: int32, columnStart: int32, rowEnd: int32, columnEnd: int32, predicate: ((arg0: FsCell) => boolean), cellsCollection: FsCellsCollection): Iterable<FsCell>;
    GetCellsInStringRangeBy(startAddress: FsAddress, lastAddress: FsAddress, predicate: ((arg0: FsCell) => boolean)): Iterable<FsCell>;
    static filterCellsFromToAddress(startAddress: FsAddress, lastAddress: FsAddress, predicate: ((arg0: FsCell) => boolean), cellsCollection: FsCellsCollection): Iterable<FsCell>;
    GetCellsInRange(rowStart: int32, columnStart: int32, rowEnd: int32, columnEnd: int32): Iterable<FsCell>;
    static getCellsFromTo(rowStart: int32, columnStart: int32, rowEnd: int32, columnEnd: int32, cellsCollection: FsCellsCollection): Iterable<FsCell>;
    GetCellsInStringRange(startAddress: FsAddress, lastAddress: FsAddress): Iterable<FsCell>;
    static getCellsFromToAddress(startAddress: FsAddress, lastAddress: FsAddress, cellsCollection: FsCellsCollection): Iterable<FsCell>;
    TryGetCell(row: int32, column: int32): Option<FsCell>;
    static tryGetCell(rowIndex: int32, colIndex: int32, cellsCollection: FsCellsCollection): Option<FsCell>;
    GetCellsInColumn(colIndex: int32): Iterable<FsCell>;
    static getCellsInColumn(colIndex: int32, cellsCollection: FsCellsCollection): Iterable<FsCell>;
    GetCellsInRow(rowIndex: int32): Iterable<FsCell>;
    static getCellsInRow(rowIndex: int32, cellsCollection: FsCellsCollection): Iterable<FsCell>;
    GetFirstAddress(): FsAddress;
    static getFirstAddress(cells: FsCellsCollection): FsAddress;
    GetLastAddress(): FsAddress;
    static getLastAddress(cells: FsCellsCollection): FsAddress;
}
export declare function FsCellsCollection_$reflection(): TypeInfo;
export declare function FsCellsCollection_$ctor(): FsCellsCollection;
//# sourceMappingURL=FsCellsCollection.fs.d.ts.map