import { BasePlugin } from "../-private/base.js"; import { ColumnApi } from "../index.js"; import { Column } from "../../index.js"; interface ColumnOptions { /** * Whether or not to enable stickiness on the column * (default is false) * * valid values: 'left', 'right', false */ sticky?: boolean | string; } interface Signature { Options: { Column: ColumnOptions; Plugin: { /** * Opts this plugin out of engaging in the modifier system * and instead requires setting a `style` attribute on * th / td tags for getting the "position: sticky" behovior * on columns. */ workaroundForModifierTimingUpdateRFC883?: boolean; }; }; Meta: { Table: TableMeta; Column: ColumnMeta; }; } declare class StickyColumns extends BasePlugin { name: string; /** * This plugin requires that the resizing plugin be present, because the resizing plugin is * what manages the base width of the columns. * * Other width-management plugins can be used instead of ColumnResizing, but they must declare * that they manage the width of the columns. */ static requires: string[]; meta: { table: typeof TableMeta; column: typeof ColumnMeta; }; conditionallyRemoveStyles: (element: HTMLElement) => void; headerCellModifier: (element: HTMLElement, { column, table }: ColumnApi) => void; /** * Not yet supported. Pending Ember RFC #883 * * TODO: switch ColumnApi to "RowApi", add the row's data */ cellModifier: (element: HTMLElement, { column, table }: ColumnApi) => void; } /** * @private * * Contains state and behaviors for the sticiness */ declare class ColumnMeta { private column; constructor(column: Column); get isSticky(): boolean; get position(): 'left' | 'right' | 'none'; get offset(): string | undefined; get style(): Partial>; } declare class TableMeta { } export { Signature, StickyColumns, ColumnMeta, TableMeta };