import { type DecodedRange } from "./utils/col-cache.js";
import { CellMatrix } from "./utils/cell-matrix.js";
import { Range } from "./range.js";
import type { Address } from "./types.js";
interface DefinedNameCell {
    sheetName?: string;
    address: string;
    row: number;
    col: number;
    mark?: boolean;
}
type CellLocation = Address | DecodedRange;
interface DefinedNameModel {
    name: string;
    ranges: string[];
}
declare class DefinedNames {
    matrixMap: Record<string, CellMatrix>;
    constructor();
    getMatrix(name: string): CellMatrix;
    add(locStr: string, name: string): void;
    addEx(location: CellLocation, name: string): void;
    remove(locStr: string, name: string): void;
    removeEx(location: CellLocation, name: string): void;
    removeAllNames(location: CellLocation): void;
    forEach(callback: (name: string, cell: DefinedNameCell) => void): void;
    getNames(addressStr: string): string[];
    getNamesEx(address: Address): string[];
    _explore(matrix: CellMatrix, cell: DefinedNameCell): Range;
    getRanges(name: string, matrix?: CellMatrix): DefinedNameModel;
    normaliseMatrix(matrix: CellMatrix, sheetName: string): void;
    spliceRows(sheetName: string, start: number, numDelete: number, numInsert: number): void;
    spliceColumns(sheetName: string, start: number, numDelete: number, numInsert: number): void;
    get model(): DefinedNameModel[];
    set model(value: DefinedNameModel[]);
}
export { DefinedNames, type DefinedNameModel };
