import type { NoIdColumnOptions } from './Table/Column'; export interface ColumnOptionsMapItemLike { /** * Index of the column in `options.columns`. */ index: number; /** * Column options for a single Grid column id. */ options: NoIdColumnOptions; } /** * Represents a column policy resolver. */ declare class ColumnPolicyResolver { /** * Individual column options map keyed by Grid column id. */ columnOptionsMap: Record; /** * Source column id map keyed by Grid column id. */ private sourceColumnIdMap; /** * Column defaults merged into all capability checks. */ private columnDefaults; /** * Available source column ids from the active data provider. */ private availableSourceColumnIds?; /** * Sets the current column options map and rebuilds source id mappings. * * @param columnOptionsMap * Column options keyed by Grid column id. */ setColumnOptionsMap(columnOptionsMap: Record): void; /** * Removes all column options from the resolver. */ clearColumnOptions(): void; /** * Returns whether options for the given column id exist. * * @param columnId * Grid column id. */ hasColumnOptions(columnId: string): boolean; /** * Returns column ids for all configured column options. */ getColumnIds(): string[]; /** * Returns raw options for a Grid column. * * @param columnId * Grid column id. */ getIndividualColumnOptions(columnId: string): NoIdColumnOptions | undefined; /** * Returns the index of a Grid column in `options.columns`. * * @param columnId * Grid column id. */ getColumnOptionIndex(columnId: string): number | undefined; /** * Adds or replaces a single column option entry. * * @param columnId * Grid column id. * * @param columnOption * Column map item to store. */ setColumnOption(columnId: string, columnOption: ColumnOptionsMapItemLike): void; /** * Removes a single column option entry. * * @param columnId * Grid column id. */ removeColumnOption(columnId: string): void; /** * Sets column defaults used for capability checks. * * @param columnDefaults * Grid column defaults. */ setColumnDefaults(columnDefaults?: NoIdColumnOptions): void; /** * Sets available source column ids from the current data provider. * * @param columnIds * List of source column ids. If omitted, the cache is cleared. */ setAvailableSourceColumnIds(columnIds?: string[]): void; /** * Returns cached source column ids from the data provider. */ getAvailableSourceColumnIds(): string[] | undefined; /** * Resolves source column id for a Grid column id. * * @param columnId * Grid column id. */ getColumnSourceId(columnId: string): string | undefined; /** * Returns whether the column is unbound to provider data. * * @param columnId * Grid column id. */ isColumnUnbound(columnId: string): boolean; /** * Returns whether the column should be included in exports. * * @param columnId * Grid column id. */ isColumnExportable(columnId: string): boolean; /** * Returns whether sorting should be enabled for the column. * * @param columnId * Grid column id. */ isColumnSortingEnabled(columnId: string): boolean; /** * Returns whether filtering should be enabled for the column. * * @param columnId * Grid column id. */ isColumnFilteringEnabled(columnId: string): boolean; /** * Returns whether inline filtering should be enabled for the column. * * @param columnId * Grid column id. */ isColumnInlineFilteringEnabled(columnId: string): boolean; /** * Returns whether editing should be enabled for the column. * * @param columnId * Grid column id. */ isColumnEditable(columnId: string): boolean; /** * Resolves ordered column ids that should be rendered. * * @param headerColumns * Column ids resolved from header. * * @param autogenerateColumns * Whether columns should be autogenerated from the provider. * * @param autoColumns * Available column ids from the data provider. * * @param configuredColumns * Column ids from `options.columns`. */ getColumnsForRender(headerColumns: string[], autogenerateColumns: boolean, autoColumns: string[], configuredColumns?: string[]): string[]; /** * Returns column ids for autogeneration mode: * `autoColumns` followed by configured-only columns. * * Relative order from `configuredColumns` is preserved. * * @param autoColumns * Column ids from the data provider. * * @param configuredColumns * Column ids from `options.columns`. */ private static getColumnsForAutogeneration; /** * Filters out duplicate and disabled columns while preserving order. * * @param columnIds * Candidate column ids. */ filterEnabledColumns(columnIds: string[]): string[]; /** * Rebuilds source column id cache from current column options. */ private rebuildSourceColumnIdMap; /** * Resolves source column id based on map item options. * * @param columnId * Grid column id. * */ private resolveSourceColumnId; } export default ColumnPolicyResolver;