import type { Drawing } from '../drawing/drawing'; import type { Color } from '../styles/colors'; import type { HeaderFooter, PageMargins, PageSetup } from '../worksheet/page-setup'; import type { WebPublishItem } from '../worksheet/web-publish'; /** `` inside ``. */ export interface ChartsheetView { workbookViewId: number; tabSelected?: boolean; zoomScale?: number; zoomToFit?: boolean; } /** `` chartsheet properties. */ export interface ChartsheetProperties { published?: boolean; codeName?: string; /** * Tab strip colour. Mirrors `SheetProperties.tabColor` on worksheets so the * two sheet kinds expose the same colour model (rgb / indexed / theme / * auto / tint) instead of forcing callers to special-case chartsheets. */ tabColor?: Color; } /** Subset of `` fields we round-trip on chartsheets. */ export interface ChartsheetProtection { /** Protect content (chart elements / text). */ content?: boolean; /** Protect drawing objects (shapes / annotations). */ objects?: boolean; algorithmName?: string; hashValue?: string; saltValue?: string; spinCount?: number; } export interface Chartsheet { /** Display title shown in Excel's tab strip. Mirrors Worksheet.title for SheetRef compatibility. */ title: string; views: ChartsheetView[]; properties?: ChartsheetProperties; protection?: ChartsheetProtection; /** * Drawing payload — typically a single absoluteAnchor with a chart * graphicFrame. Mirrors Worksheet.drawing so the existing drawing-XML helpers * can be reused. */ drawing?: Drawing; /** `` — six required margins in inches. */ pageMargins?: PageMargins; /** `` — paper size / orientation / scale / fitToPage. */ pageSetup?: PageSetup; /** `` — odd/even/first header + footer mini-format strings. */ headerFooter?: HeaderFooter; /** `` — VML drawing for comments / form-control overlay. */ legacyDrawingRId?: string; /** `` — VML drawing for header/footer print background. */ legacyDrawingHFRId?: string; /** * `` — drawing slot + per-section image indices for header/footer * print backgrounds (DrawingML rather than VML). */ drawingHF?: ChartsheetDrawingHF; /** `` — chartsheet background image. */ backgroundPictureRId?: string; /** `` — Excel 2007 "Publish to web" entries (rare on chartsheets). */ webPublishItems: WebPublishItem[]; /** * `` — saved per-user view presets for this chartsheet * (Shared Workbook era). Each entry can carry its own page margins / setup / * header-footer. */ customSheetViews: ChartsheetCustomSheetView[]; } /** One `` entry inside a chartsheet. */ export interface ChartsheetCustomSheetView { guid: string; scale?: number; state?: 'visible' | 'hidden' | 'veryHidden'; zoomToFit?: boolean; pageMargins?: PageMargins; pageSetup?: PageSetup; headerFooter?: HeaderFooter; } export declare const makeChartsheetCustomSheetView: (opts: Partial & { guid: string; }) => ChartsheetCustomSheetView; /** * `` — per-section image-index map for the header/footer drawing * reference. Each `*o` / `*e` / `*f` attr is a 1-based image number into the * referenced drawing part. All optional. */ export interface ChartsheetDrawingHF { /** Required rels link to xl/drawings/drawingN.xml carrying the actual image refs. */ rId: string; /** Left-header image index for odd pages. */ lho?: number; cho?: number; rho?: number; /** Left-header image index for even pages. */ lhe?: number; che?: number; rhe?: number; /** Left-header image index for the first page (when differentFirst). */ lhf?: number; chf?: number; rhf?: number; /** Left-footer image index for odd pages. */ lfo?: number; cfo?: number; rfo?: number; /** Left-footer image index for even pages. */ lfe?: number; cfe?: number; rfe?: number; /** Left-footer image index for first page. */ lff?: number; cff?: number; rff?: number; } export declare const makeChartsheet: (title: string) => Chartsheet;