import { FlowBlock, ImageBlock, ImageMeasure, Measure, DrawingBlock, DrawingMeasure, TableBlock, TableMeasure } from '../../contracts/src/index.js';
/**
 * Represents an anchored image or drawing block with its measurements.
 * Used to bundle block and measure data for anchor processing.
 */
export type AnchoredDrawing = {
    block: ImageBlock | DrawingBlock;
    measure: ImageMeasure | DrawingMeasure;
};
export type AnchoredTable = {
    block: TableBlock;
    measure: TableMeasure;
};
export type AnchoredObject = AnchoredDrawing | AnchoredTable;
export type AnchoredTableCollection = {
    byParagraph: Map<number, AnchoredTable[]>;
    withoutParagraph: AnchoredTable[];
};
/**
 * Check if an anchored image should be pre-registered (before any paragraphs are laid out).
 * Images with vRelativeFrom='margin' or 'page' position themselves relative to the page,
 * not relative to their anchor paragraph. These need to be registered first so ALL
 * paragraphs can wrap around them.
 */
export declare function isPageRelativeAnchor(block: ImageBlock | DrawingBlock): boolean;
/**
 * Collect anchored images that should be pre-registered before the layout loop.
 * These are images with vRelativeFrom='margin' or 'page' that affect all paragraphs.
 *
 * @param blocks - Array of flow blocks to scan for anchored images
 * @param measures - Corresponding measures for each block
 * @returns Array of anchored drawings that should be pre-registered
 */
export declare function collectPreRegisteredAnchors(blocks: FlowBlock[], measures: Measure[]): AnchoredDrawing[];
/**
 * Collect anchored drawings (images/drawings) mapped to their anchor paragraph index.
 * Map of paragraph block index -> anchored images/drawings associated with that paragraph.
 */
export declare function collectAnchoredDrawings(blocks: FlowBlock[], measures: Measure[]): Map<number, AnchoredDrawing[]>;
/**
 * Collect anchored/floating tables mapped to their anchor paragraph index.
 * Also returns anchored tables that have no paragraph to attach to.
 */
export declare function collectAnchoredTables(blocks: FlowBlock[], measures: Measure[]): AnchoredTableCollection;
//# sourceMappingURL=anchors.d.ts.map