import { IStyleData, Nullable } from '@univerjs/core'; export type IRangeThemeStyleItem = Pick; export interface IRangeThemeStyleJSON { name: string; wholeStyle?: IRangeThemeStyleItem; headerRowStyle?: IRangeThemeStyleItem; headerColumnStyle?: IRangeThemeStyleItem; firstRowStyle?: IRangeThemeStyleItem; secondRowStyle?: IRangeThemeStyleItem; lastRowStyle?: IRangeThemeStyleItem; firstColumnStyle?: IRangeThemeStyleItem; secondColumnStyle?: IRangeThemeStyleItem; lastColumnStyle?: IRangeThemeStyleItem; } export declare function composeStyles(styles: IStyleData[]): IRangeThemeStyleItem; /** * Range theme style * @description The range theme style is used to set the style of the range.This class is used to create a build-in theme style or a custom theme style. */ export declare class RangeThemeStyle { private _name; /** * @property {Nullable} wholeStyle effect for the whole range. */ wholeStyle: Nullable; /** * @property {Nullable} headerRowStyle effect for the header row. */ headerRowStyle: Nullable; /** * @property {Nullable} headerColumnStyle effect for the header column. */ headerColumnStyle: Nullable; /** * @property {Nullable} firstRowStyle effect for the first row. */ firstRowStyle: Nullable; /** * @property {Nullable} secondRowStyle effect for the second row. */ secondRowStyle: Nullable; /** * @property {Nullable} lastRowStyle effect for the last row. */ lastRowStyle: Nullable; /** * @property {Nullable} firstColumnStyle effect for the first column. */ firstColumnStyle: Nullable; /** * @property {Nullable} secondColumnStyle effect for the second column. */ secondColumnStyle: Nullable; /** * @property {Nullable} lastColumnStyle effect for the last column. */ lastColumnStyle: Nullable; /** * @property {Nullable} quickly get merge style */ private _mergeCacheMap; /** * @constructor * @param {string} name The name of the range theme style, it used to identify the range theme style. * @param {IRangeThemeStyleJSON} [options] The options to initialize the range theme style. */ constructor(name: string, options?: Omit); /** * Gets the name of the range theme style.The name is read only, and use to identifier the range theme style. * @returns {string} The name of the range theme style. */ getName(): string; getWholeStyle(): Nullable; setWholeStyle(style: Nullable): void; getFirstRowStyle(): Nullable; setFirstRowStyle(style: Nullable): void; getSecondRowStyle(): Nullable; setSecondRowStyle(style: Nullable): void; getLastRowStyle(): Nullable; setLastRowStyle(style: Nullable): void; getFirstColumnStyle(): Nullable; setFirstColumnStyle(style: Nullable): void; getSecondColumnStyle(): Nullable; setSecondColumnStyle(style: Nullable): void; getLastColumnStyle(): Nullable; setLastColumnStyle(style: Nullable): void; getHeaderRowStyle(): Nullable; setHeaderRowStyle(style: Nullable): void; getHeaderColumnStyle(): Nullable; setHeaderColumnStyle(style: Nullable): void; getStyle(offsetRow: number, offsetCol: number, isLastRow: boolean, isLastCol: boolean, isToggled: boolean): IRangeThemeStyleItem | null; private _getMergeStyle; private _mergeStyle; private _resetStyleCache; toJson(): IRangeThemeStyleJSON; fromJson(json: IRangeThemeStyleJSON): void; dispose(): void; }