import { PMNode } from '../types.js';
import { SectionVerticalAlign } from './types.js';
import { ColumnLayout, PageNumberChapterSeparator } from '../../../../../../../layout-engine/contracts/src/index.js';
/**
 * Parse and validate column count from w:cols w:num attribute.
 * @param rawValue - Raw value from w:num attribute
 * @returns Column count (defaults to 1 if missing or invalid per Word semantics)
 */
export declare function parseColumnCount(rawValue: string | number | undefined): number;
/**
 * Parse column gap from w:cols w:space attribute (in twips) and convert to inches.
 * @param gapTwips - Gap in twips from w:space attribute
 * @returns Gap in inches (defaults to 0.5" = 720 twips if missing or invalid)
 */
export declare function parseColumnGap(gapTwips: string | number | undefined): number;
/**
 * Parse presence of column separator from w:sep attribute (can be '1', 'true' or 'on').
 * @param rawValue - Raw value from w:sep attribute
 * @returns Presence of column separator
 */
export declare function parseColumnSeparator(rawValue: string | number | undefined): boolean;
type SectionType = 'continuous' | 'nextPage' | 'evenPage' | 'oddPage';
type Orientation = 'portrait' | 'landscape';
type HeaderRefType = Partial<Record<'default' | 'first' | 'even' | 'odd', string>>;
type NumberingFormat = 'decimal' | 'lowerLetter' | 'upperLetter' | 'lowerRoman' | 'upperRoman' | 'numberInDash';
/**
 * Extract section data (margins, type, page size, orientation, columns, vAlign) from a paragraph node.
 * Prefers normalized attrs.sectionMargins (inches), falls back to raw sectPr parsing (twips).
 */
export declare function extractSectionData(para: PMNode): {
    headerPx?: number;
    footerPx?: number;
    topPx?: number;
    rightPx?: number;
    bottomPx?: number;
    leftPx?: number;
    type?: SectionType;
    /** True iff `<w:type>` was present in the source XML (vs. type defaulted by the caller). */
    typeIsExplicit?: boolean;
    pageSizePx?: {
        w: number;
        h: number;
    };
    orientation?: Orientation;
    columnsPx?: ColumnLayout;
    titlePg?: boolean;
    headerRefs?: HeaderRefType;
    footerRefs?: HeaderRefType;
    numbering?: {
        format?: NumberingFormat;
        start?: number;
        chapterStyle?: number;
        chapterSeparator?: PageNumberChapterSeparator;
    };
    vAlign?: SectionVerticalAlign;
} | null;
export {};
//# sourceMappingURL=extraction.d.ts.map