import type { Chart } from "./chart/chart.js"; import type { AddChartExOptions, ChartExModel } from "./chart/chart-ex-types.js"; import type { AddChartOptions, AddComboChartOptions, ChartModel } from "./chart/types.js"; import type { ChartsheetModel } from "./xlsx/xform/sheet/chartsheet-xform.js"; export interface ChartsheetViewOptions { /** Whether the chartsheet tab is selected in the workbook view. */ tabSelected?: boolean; /** Zoom scale percentage. */ zoomScale?: number; /** * 0-based index into the workbook's `` list that this * chartsheet view is bound to. Defaults to 0 (the primary view). */ workbookViewId?: number; /** * When true the chartsheet scales to fill the window. Matches the * OOXML `` attribute. */ zoomToFit?: boolean; } export interface ChartsheetOptions extends ChartsheetViewOptions { /** Sheet visibility state. */ state?: "visible" | "hidden" | "veryHidden"; /** Page margins for the chartsheet. */ pageMargins?: ChartsheetModel["pageMargins"]; /** Page setup for the chartsheet (CT_CsPageSetup). */ pageSetup?: ChartsheetModel["pageSetup"]; } export interface AddChartsheetOptions extends ChartsheetOptions { /** Chart to place on the chartsheet. */ chart: AddChartOptions | AddComboChartOptions | AddChartExOptions; } export interface AddPivotChartsheetOptions extends ChartsheetOptions { /** Classic chart or combo chart to place on the chartsheet as a pivot chart. */ chart: AddChartOptions | AddComboChartOptions; } declare class Chartsheet { private readonly _model; private readonly _workbook?; constructor(model: ChartsheetModel, workbook?: ChartsheetWorkbook); get id(): number; get sheetNo(): number; get name(): string; set name(value: string); get state(): ChartsheetModel["state"]; set state(value: ChartsheetModel["state"]); get chartNumber(): number | undefined; get chartExNumber(): number | undefined; get chartModel(): ChartModel | undefined; get chartExModel(): ChartExModel | undefined; /** * Return the `Chart` wrapper for this chartsheet's single chart. * * The wrapper's `.worksheet` field is a {@link ChartsheetChartHost} * rather than a real `Worksheet` — grid operations on it will throw a * descriptive error. For anything grid-related, use the underlying * {@link chartModel}/{@link chartExModel} directly or go through the * `Chartsheet` methods ({@link replaceChart}, {@link rename}, …). */ get chart(): Chart | undefined; get isChartEx(): boolean; get model(): ChartsheetModel; get pageMargins(): ChartsheetModel["pageMargins"]; set pageMargins(value: ChartsheetModel["pageMargins"]); get pageSetup(): ChartsheetModel["pageSetup"]; set pageSetup(value: ChartsheetModel["pageSetup"]); get tabSelected(): boolean | undefined; set tabSelected(value: boolean | undefined); get zoomScale(): number | undefined; set zoomScale(value: number | undefined); get workbookViewId(): number | undefined; set workbookViewId(value: number | undefined); get zoomToFit(): boolean | undefined; set zoomToFit(value: boolean | undefined); rename(name: string): boolean; remove(): boolean; copy(name?: string): Chartsheet | undefined; replaceChart(chart: AddChartsheetOptions["chart"]): boolean; } interface ChartsheetWorkbook { getChartEntry(chartNumber: number): { model: ChartModel; } | undefined; getChartExStructuredEntry(chartExNumber: number): { model: ChartExModel; } | undefined; renameChartsheet(nameOrIndex: string | number, name: string): boolean; removeChartsheet(nameOrIndex: string | number): boolean; copyChartsheet(nameOrIndex: string | number, name?: string): Chartsheet | undefined; replaceChartsheetChart(nameOrIndex: string | number, chart: AddChartsheetOptions["chart"]): boolean; /** * Validate a sheet name against Excel's unified namespace (both * worksheets and chartsheets). See `Workbook.validateSheetName` for * the full contract. Declared here so `Chartsheet.name` setter can * route through it without widening the narrow host interface to * the full `Workbook` type. */ validateSheetName(name: string, existing?: { name: string; }): string; } export { Chartsheet };