import { BoundedRegionOptions, CheckTableRegionOptions, RepeatingRegionOptions, TableRegion, TableHeaderRegionOptions, SubTableHeaderRegionOptions, _2DTableRegionOptions, BoundedRegion, CheckTableRegion, RepeatingRegion, TableHeaderRegion, SubTableHeaderRegion, _2DTableRegion } from '../../logic';
import { Wtbl } from '../Wtbl';
/** 矩形区域边界（行/列起止索引） */
type RegionBounds = Pick<TableRegion, 'start' | 'end'>;
/**
 * 表格区域管理器
 *
 * 负责在 {@link Wtbl} 上注册、查询、删除各类 {@link TableRegion}，
 * 并同步维护 region 覆盖范围内单元格上的子表 / 表头 / 区域引用标记。
 */
export declare class WtblRegionManager {
    /**
     * 按 id 查找 region
     */
    static findRegionById(table: Wtbl, regionId: string): TableRegion | undefined;
    /**
     * 查找与给定矩形范围相交的第一个 region（含边界接触）
     */
    static findCrossRegion(table: Wtbl, bounds: RegionBounds): TableRegion | undefined;
    /**
     * 查找与给定矩形范围相交的全部 region
     */
    static findCrossRegions(table: Wtbl, bounds: RegionBounds): TableRegion[];
    /**
     * 按 id 删除 region，并清除其覆盖范围内单元格上的关联标记
     */
    static deleteRegionById(table: Wtbl, regionId: string): void;
    /**
     * 设置重复区域（子表体）
     */
    static setRepeating(table: Wtbl, options: Omit<RepeatingRegionOptions, 'table'>): RepeatingRegion;
    /**
     * 设置二维表区域
     */
    static set2DTable(table: Wtbl, options: Omit<_2DTableRegionOptions, 'table'>): _2DTableRegion;
    /**
     * 设置有界区域（子表体）
     */
    static setBounded(table: Wtbl, options: Omit<BoundedRegionOptions, 'table'>): BoundedRegion;
    /**
     * 设置检验表区域
     */
    static setCheckTable(table: Wtbl, options: Omit<CheckTableRegionOptions, 'table'>): CheckTableRegion;
    /**
     * 设置表头区域（主表表头）
     */
    static setTableHeader(table: Wtbl, options: Omit<TableHeaderRegionOptions, 'table'>): TableHeaderRegion;
    /**
     * 设置子表表头区域
     */
    static setSubTableHeader(table: Wtbl, options: Omit<SubTableHeaderRegionOptions, 'table'>): SubTableHeaderRegion;
    /**
     * 判断两个矩形区域是否相交（含边界恰好相贴的情况）
     */
    private static regionsIntersect;
    /**
     * 遍历 region 覆盖范围内的所有单元格
     */
    private static forEachCellInRegion;
    /**
     * 将 region 加入 table.regions，并同步标记覆盖范围内的单元格
     */
    private static registerRegion;
    /**
     * 删除 region 时，按类型清除单元格上的关联数据
     *
     * - 子表类：清除字段 runs + 子表 / 子表项引用
     * - 表头类：清除字段 runs + 表头引用
     * - 其他：仅清除对应 region 的引用
     */
    private static clearCellRegionMarks;
}
export {};
