import { FlowBlock, SdtMetadata } from '../../../../../../../layout-engine/contracts/src/index.js';
import { PMNode, BlockIdGenerator, PositionMap, HyperlinkConfig, NodeHandlerContext, TrackedChangesConfig, NestedConverters, ConverterContext, ThemeColorPalette } from '../types.js';
/**
 * Context object containing processing dependencies and configuration.
 */
interface ProcessingContext {
    nextBlockId: BlockIdGenerator;
    positions: PositionMap;
    trackedChangesConfig: TrackedChangesConfig;
    bookmarks: Map<string, number>;
    hyperlinkConfig: HyperlinkConfig;
    enableComments: boolean;
    converterContext: ConverterContext;
    themeColors?: ThemeColorPalette;
}
/**
 * Output accumulator for blocks and block kind tracking.
 */
interface ProcessingOutput {
    blocks: FlowBlock[];
    recordBlockKind?: (kind: FlowBlock['kind']) => void;
}
/**
 * Processes child nodes within a documentSection, applying section metadata
 * to all contained blocks (paragraphs, lists, tables, images, nested SDTs, TOCs).
 *
 * This function handles the recursive processing of complex document structures
 * while ensuring that SDT metadata is properly propagated to all child blocks.
 *
 * @param children - Child PM nodes within the documentSection to process
 * @param sectionMetadata - The documentSection metadata to apply to children
 * @param context - Processing context including functions, maps, and optional bookmarks
 * @param output - Output accumulator for blocks and block kind tracking
 * @param converters - Converter functions for different node types (dependency injection)
 */
export declare function processDocumentSectionChildren(children: PMNode[], sectionMetadata: SdtMetadata | undefined, context: ProcessingContext, output: ProcessingOutput, converters: NestedConverters): void;
/**
 * Handle document section nodes.
 * Unwraps SDT documentSection into child blocks (paragraphs, tables, lists, images, etc.).
 *
 * @param node - Document section node to process
 * @param context - Shared handler context
 */
export declare function handleDocumentSectionNode(node: PMNode, context: NodeHandlerContext): void;
export {};
//# sourceMappingURL=document-section.d.ts.map