import { SortType } from '../../../utils/data-source/data-source.types';
import { CellFormatter, CellRenderer, ColumnDefinition, ColumnFilter, ColumnHeaderFormatter, ColumnHeaderRenderer, DataType, FilterType, OptionsProvider, PinnedType, TableOverflow } from '../table.types';
import { ValidationRule } from '../validation-rule/validation-rule';
import { IntlFormatFn } from '../../locale/i18n.provider';
export declare class MetaColumn implements ColumnDefinition {
    table: HTMLAnjTableElement;
    private translator;
    private renderer;
    caption: string | undefined;
    cellFormatter: CellFormatter;
    cellRenderer: CellRenderer;
    cellTemplate: string;
    dataType: DataType;
    defaultValue: string;
    editFormatter: CellFormatter;
    editRenderer: CellRenderer;
    editTemplate: string;
    editable: boolean;
    field: string | undefined;
    filter: ColumnFilter;
    filterable: boolean;
    filterTypes: FilterType[];
    groupIndex: number | undefined;
    groupKey: string;
    groupKeys: string[];
    headerFormatter: ColumnHeaderFormatter;
    headerRenderer: ColumnHeaderRenderer;
    index: number;
    internal: boolean;
    name: string;
    pinnable: boolean;
    pinned: PinnedType;
    orderable: boolean;
    options: OptionsProvider;
    overflow: TableOverflow;
    rules: ValidationRule[];
    selectable: boolean;
    sizable: boolean;
    sortable: boolean;
    sortIndex: number;
    sortOrder: SortType;
    span: number;
    width: string;
    visible: boolean;
    constructor(table: HTMLAnjTableElement, config: string | any, translator: IntlFormatFn);
    contextMenu(): Promise<HTMLAnjContextMenuItemElement[] | undefined>;
    setOffset(offset: string): Promise<void>;
    setWidth(width: string): Promise<void>;
    initCell(cell: HTMLElement, offset?: string): Promise<void>;
    /**
     * This little bit of hell fixes https://git.zias.io/ui-foundation/anjuna/issues/738.
     * For some reason, meta columns (and only meta columns, no idea why) consistently get passed to the initCell method before they've attached to the DOM.
     * This breaks the logic for calculating the offset of pinned columns on first render.
     * So what this does is waits for it to attach, and then next time around resolves.
     * If it resolves as soon as it attaches, it doesn't break, but the alignment can be off.
     * I am not proud of this. A more stable fix would probably be to move this into the table after render,
     * but because I don't understand why this isn't a problem for declarative columns, it seems better to bastardize it here for now. -r
     */
    private onAttached;
}
