import { CrossReferenceMetadata, FlowBlock, Layout } from '../../contracts/src/index.js'; export interface PageStyleReferenceRequest { pageNumber: number; styleName: string; preferFollowing: boolean; instruction?: string; } export type PageStyleReferenceResolver = (request: PageStyleReferenceRequest) => string | null; export declare function flowBlocksContainCrossReferenceMetadata(blocks: readonly FlowBlock[], kind?: CrossReferenceMetadata['kind']): boolean; /** * Copy only block paths that contain live cross-reference result runs. Stable * source blocks may be shared with the previous render plane; resolving into a * shared run would mutate the diff baseline and incorrectly retain its measure. */ export declare function cloneLiveCrossReferenceFieldBlocks(blocks: readonly T[]): T[]; /** * Resolve live cross-reference results from the current editor-neutral flow * graph. This happens before measurement, so changed result text participates * in line wrapping and pagination without creating a second document mutation. */ export declare function resolveLiveCrossReferences(bodyBlocks: FlowBlock[]): void; /** Build the page-aware STYLEREF resolver used by repeated headers/footers. */ export declare function buildPageStyleReferenceResolver(bodyBlocks: readonly FlowBlock[], layout: Layout): PageStyleReferenceResolver;