import { EventEmitter } from '../../../stencil.core';
import { SortType } from '../../../utils/data-source/data-source.types';
import { ColumnDefinition, PinChange, PinnedType, ReorderData, SortData } from '../table.types';
export declare class ColumnControl {
    private clickListener;
    private keyListener;
    private dragController;
    private dropController;
    private dropListener;
    private parentEl;
    private table;
    private resizing;
    element: HTMLAnjColumnControlElement;
    /**
     * The column
     */
    column: ColumnDefinition;
    /**
     * The field for the column
     */
    field: string | undefined;
    /**
     * The pinned state of the column
     */
    pinned: PinnedType;
    /**
     * Is the column sorted
     * Possible values are: `"asc"`, `"desc"`, `undefined`.
     */
    sortIndex: number;
    /**
     * Is the column sorted
     * Possible values are: `"asc"`, `"desc"`, `undefined`.
     */
    sortOrder: SortType;
    /**
     * Emitted when the column has been changed
     */
    anjReorder: EventEmitter<ReorderData>;
    /**
     * Emitted when the column has been changed
     */
    anjPin: EventEmitter<PinChange>;
    /**
     * Emitted when the column has been changed
     */
    anjSort: EventEmitter<SortData>;
    componentWillLoad(): Promise<void>;
    componentDidUnload(): void;
    onSort(event?: MouseEvent): void;
    onContextSelection({ detail }: CustomEvent): Promise<void>;
    onResizeStart(): void;
    onResizeEnd(): void;
    private onDrop;
    private columnIndex;
    render(): any[];
}
