import { RawElement } from '../types/raw';
import { ModelNode, RefManager, ModelNodeOptions, SimpleRef, SlotRef } from '../base';
export type HeaderFooterKind = 'header' | 'footer';
/**
 * 页面大小配置
 */
export interface PageSize {
    width?: number;
    height?: number;
}
/**
 * 页面边距配置
 */
export interface PageMargins {
    top?: number;
    bottom?: number;
    left?: number;
    right?: number;
    header?: number;
    footer?: number;
    gutter?: number;
}
/**
 * 列配置
 */
export interface Columns {
    num?: number;
    space?: number;
}
/**
 * 文本框线配置
 */
export interface DocGrid {
    type?: string;
    linePitch?: number;
}
/**
 * Word 文档章节（Section）
 * 每个章节包含页面设置、边距、列数等配置
 * 一个文档可以有多个章节，每个章节可以有不同的页面设置
 */
export declare class WsecPr extends ModelNode {
    /** 节点名称 */
    name: 'w:secPr';
    /** 节点类型 */
    type: "element";
    raw: RawElement;
    pageSize?: PageSize;
    margins?: PageMargins;
    columns?: Columns;
    docGrid?: DocGrid;
    /** 页眉页脚首页不同 */
    titlePg: boolean;
    /** 页眉引用关系 */
    headerRefManager: RefManager<SlotRef>;
    /** 页脚引用关系 */
    footerRefManager: RefManager<SlotRef>;
    /** 浮层引用关系 */
    overlayRefManager: RefManager<SimpleRef>;
    fromParagraph: boolean;
    constructor(options: ModelNodeOptions & {
        raw: RawElement;
        pageSize?: PageSize;
        margins?: PageMargins;
        columns?: Columns;
        docGrid?: DocGrid;
        titlePg: boolean;
    });
    /**
     * 从原始 XML JSON 转换为 WsecPr 实例
     */
    static fromXmlJson(json: RawElement): WsecPr;
    /**
     * 将 WsecPr 实例转换为原始 XML JSON
     */
    toXmlJson(): RawElement;
    /**
     * 获取页面宽度
     */
    getPageWidth(): number | undefined;
    /**
     * 获取页面高度（单位：twip，1/20点）
     */
    getPageHeight(): number | undefined;
    /**
     * 获取有效的左边距（考虑装订线）
     */
    getEffectiveLeftMargin(): number | undefined;
    /**
     * 根据页码解析页眉/页脚引用
     * @param type 'header' | 'footer'
     * @param pageIndex 页码
     * @param evenAndOddHeaders 是否启用奇偶页不同
     */
    private resolveHeaderFooterRef;
    /**
     * 根据 pageIndex 获取页眉引用
     * @param pageIndex 页码
     * @param evenAndOddHeaders 是否启用奇偶页
     */
    getHeaderRef(pageIndex: number, evenAndOddHeaders: boolean): string | null;
    /**
     * 根据 pageIndex 获取页脚引用
     * @param pageIndex 页码
     * @param evenAndOddHeaders 是否启用奇偶页
     */
    getFooterRef(pageIndex: number, evenAndOddHeaders: boolean): string | null;
    /** 根据章节 id 获取浮层引用 */
    getOverlayRef(): string | null;
    /**
     * 重新计算页眉引用，并写回 raw
     */
    normalizeHeaderRefs(refIds: string[]): void;
    /**
     * 重新计算页脚引用，并写回 raw
     */
    normalizeFooterRefs(refIds: string[]): void;
    /**
     * 重新计算浮层引用，并写回 raw
     */
    normalizeOverlayRefs(refs: string[], secIds: string[]): void;
    /**
     * 获取当前页面方向
     * @returns 'portrait' | 'landscape' | null
     */
    getOrient(): 'portrait' | 'landscape' | null;
    setOrient(val: 'portrait' | 'landscape'): void;
    /**
     * 设置为横向（宽 > 高）
     * 通过交换宽高数据实现
     */
    setLandscape(): void;
    /**
     * 设置为纵向（高 > 宽）
     * 通过交换宽高数据实现
     */
    setPortrait(): void;
    /**
     * 设置上边距 (margin top)
     * @param value 边距值，单位：twip（1/20点）
     */
    setMarginTop(value: number): void;
    /**
     * 设置下边距 (margin bottom)
     * @param value 边距值，单位：twip（1/20点）
     */
    setMarginBottom(value: number): void;
    /**
     * 设置左边距 (margin left)
     * @param value 边距值，单位：twip（1/20点）
     */
    setMarginLeft(value: number): void;
    /**
     * 设置右边距 (margin right)
     * @param value 边距值，单位：twip（1/20点）
     */
    setMarginRight(value: number): void;
    /**
     * 同时设置四个边距
     * @param top 上边距值，单位：twip（1/20点）
     * @param bottom 下边距值，单位：twip（1/20点）
     * @param left 左边距值，单位：twip（1/20点）
     * @param right 右边距值，单位：twip（1/20点）
     */
    setMargins(top: number, bottom: number, left: number, right: number): void;
    /**
     * 设置页眉距页面顶边距离
     * @param value 单位：twip
     */
    setHeaderMargin(value: number): void;
    /**
     * 设置页脚距页面底边距离
     * @param value 单位：twip
     */
    setFooterMargin(value: number): void;
    /**
     * 设置首页不同页眉页脚
     */
    setTitlePg(enabled: boolean): void;
}
