import type { WorkDocumentMargins, WorkDocumentSectionLayout } from './work-types'; export declare const DOCUMENT_PAGE_MARGIN_KEYS: readonly ["top", "right", "bottom", "left", "header", "footer", "gutter"]; export type WorkDocumentPageMarginKey = (typeof DOCUMENT_PAGE_MARGIN_KEYS)[number]; export type WorkDocumentPageMarginEdge = 'top' | 'right' | 'bottom' | 'left'; export type WorkDocumentPageMarginVerticalEdge = 'top' | 'bottom'; export type WorkDocumentPageMarginMode = 'clearChrome' | 'fromPageEdge'; export type WorkDocumentGutterPosition = 'left' | 'right' | 'top'; /** * Canonical Word page-margin geometry in twentieths of a point. * * Keeping the native integer unit avoids changing valid OOXML values merely * because the browser and the editing UI project the same geometry in pixels * and millimetres. Negative top or bottom values retain Word's explicit * header/footer-overlap semantics. */ export interface WorkDocumentPageMargins { top: number; right: number; bottom: number; left: number; header: number; footer: number; gutter: number; mirrorMargins?: boolean; gutterAtTop?: boolean; gutterOnRight?: boolean; } export interface ResolvedDocumentPageMargins { body: WorkDocumentMargins; unboundedBody: WorkDocumentMargins; headerDistance: number; footerDistance: number; gutter: number; gutterPosition: WorkDocumentGutterPosition; mirrorMargins: boolean; topMode: WorkDocumentPageMarginMode; bottomMode: WorkDocumentPageMarginMode; bounded: boolean; } export declare function normalizeDocumentPageMargins(source: unknown): WorkDocumentPageMargins | null; export declare function parseDocumentPageMargins(source: unknown): WorkDocumentPageMargins | null; export declare function serializeDocumentPageMargins(source: unknown): string | undefined; export declare function documentPageMarginsForLayout(layout: Pick): WorkDocumentPageMargins; export declare function documentPageMarginsFromBody(margins: WorkDocumentMargins): WorkDocumentPageMargins; export declare function documentPageMarginBody(source: unknown, fallback: WorkDocumentMargins): WorkDocumentMargins; export declare function documentPageHorizontalMarginTwips(layout: Pick): number; export declare function resolveDocumentPageMargins(layout: Pick, physicalPage?: number): ResolvedDocumentPageMargins; export declare function updateDocumentPageMarginMillimeters(layout: WorkDocumentSectionLayout, key: WorkDocumentPageMarginKey, millimeters: number): WorkDocumentSectionLayout; export declare function updateDocumentPageMarginMode(layout: WorkDocumentSectionLayout, edge: WorkDocumentPageMarginVerticalEdge, mode: WorkDocumentPageMarginMode): WorkDocumentSectionLayout; export declare function updateDocumentGutterPosition(layout: WorkDocumentSectionLayout, position: WorkDocumentGutterPosition): WorkDocumentSectionLayout; export declare function updateDocumentMirrorMargins(layout: WorkDocumentSectionLayout, mirrored: boolean): WorkDocumentSectionLayout; export declare function reconcileDocumentPageMarginUpdate(previous: WorkDocumentSectionLayout, next: WorkDocumentSectionLayout): WorkDocumentSectionLayout; export declare function documentPageMarginGlobalsChanged(previous: WorkDocumentSectionLayout, next: WorkDocumentSectionLayout): boolean; export declare function synchronizeDocumentPageMarginGlobals(layout: WorkDocumentSectionLayout, source: WorkDocumentPageMargins): WorkDocumentSectionLayout; export declare function twipsToMillimeters(value: number): number; export declare function millimetersToTwips(value: number): number;