type Func<T> = (value: BaseBlock, index: number, array: BaseBlock[]) => T;
export declare class BlockSet {
    blocks: BaseBlock[];
    constructor(blocks?: BaseBlock[]);
    push(block: BaseBlock): void;
    getBlocks(): BaseBlock[];
    getRegions(): {
        refName: string;
        start: number;
        end: number;
        assemblyName: string;
        reversed: boolean | undefined;
    }[];
    map<T, U = this>(func: Func<T>, thisarg?: U): T[];
    forEach<T, U = this>(func: Func<T>, thisarg?: U): void;
    get length(): number;
    get totalWidthPx(): number;
    get totalWidthPxWithoutBorders(): number;
    get offsetPx(): number;
    get contentBlocks(): BaseBlock[];
    get totalBp(): number;
}
export declare class BaseBlock {
    type: string;
    regionNumber?: number;
    reversed?: boolean;
    refName: string;
    start: number;
    end: number;
    assemblyName: string;
    key: string;
    offsetPx: number;
    widthPx: number;
    variant?: string;
    isLeftEndOfDisplayedRegion?: boolean;
    constructor(data: Record<string, any>);
    toRegion(): {
        refName: string;
        start: number;
        end: number;
        assemblyName: string;
        reversed: boolean | undefined;
    };
}
export declare class ContentBlock extends BaseBlock {
    type: string;
}
export declare class ElidedBlock extends BaseBlock {
    type: string;
    widthPx: number;
    elidedBlockCount: number;
    constructor(data: Record<string, any>);
    push(otherBlock: ElidedBlock): void;
}
export declare class InterRegionPaddingBlock extends BaseBlock {
    type: string;
}
export {};
