import type { StylesHandler } from '../types'; import type { SettingsPort } from '../ports'; /** * @class Settings */ export default class Settings implements SettingsPort { /** * Reference to settings. * * @protected * @type {object} */ settings: Record; /** * The defaults values of settings. * Void 0 means it is required, null means it can be empty. * * @public * @type {Readonly} */ defaults: Record; /** * @param {object} settings The user defined settings. */ constructor(settings: Record); /** * Update settings. * * @param {object|string} settings The singular settings to update or if passed as object to merge with. * @param {*} value The value to set if the first argument is passed as string. * @returns {Settings} */ update(settings: string | Record, value?: unknown): this; /** * Get setting by name. * * @param {$Keys} key The settings key to retrieve. * @param {*} [param1] Additional parameter passed to the options defined as function. * @param {*} [param2] Additional parameter passed to the options defined as function. * @param {*} [param3] Additional parameter passed to the options defined as function. * @param {*} [param4] Additional parameter passed to the options defined as function. * @returns {*} */ getSetting(key: 'stylesHandler'): StylesHandler; getSetting(key: 'preventOverflow'): 'horizontal' | 'vertical' | false; getSetting(key: 'rtlMode'): boolean; getSetting(key: 'isDataViewInstance'): boolean; getSetting(key: 'fixedColumnsStart'): number; getSetting(key: 'fixedRowsTop'): number; getSetting(key: 'fixedRowsBottom'): number; getSetting(key: 'totalRows'): number | undefined; getSetting(key: 'totalColumns'): number | undefined; getSetting(key: 'rowHeaderWidth'): number | undefined; getSetting(key: 'defaultColumnWidth'): number | undefined; getSetting(key: 'viewportRowRenderingThreshold'): number | 'auto'; getSetting(key: 'viewportColumnRenderingThreshold'): number | 'auto'; getSetting(key: 'viewportRowRenderingOffsetIsAuto'): boolean; getSetting(key: 'viewportColumnRenderingOffsetIsAuto'): boolean; getSetting(key: string, param1?: any, param2?: unknown, param3?: unknown, param4?: unknown): T; /** * Get a setting value without any evaluation. * * @param {string} key The settings key to retrieve. * @returns {*} */ getSettingPure(key: string): T; /** * Checks if setting exists. * * @param {boolean} key The settings key to check. * @returns {boolean} */ has(key: string): boolean; }