import type { ComponentSelector, DragAndDropIcon, DragItem, DragSourceType, DropTarget, ElementParams } from 'ag-grid-community';
import { Component } from 'ag-grid-community';
type PillDragCompEvent = 'columnRemove';
export declare abstract class PillDragComp<TItem> extends Component<PillDragCompEvent> {
    private readonly dragSourceDropTarget;
    private readonly ghost;
    private readonly horizontal;
    protected template?: ElementParams | undefined;
    protected agComponents?: ComponentSelector[] | undefined;
    private readonly eText;
    private readonly eDragHandle;
    private readonly eButton;
    abstract getItem(): TItem;
    abstract isMovable(): boolean;
    protected abstract getDisplayName(): string;
    protected abstract getAriaDisplayName(): string;
    protected abstract getTooltip(): string | null | undefined;
    protected abstract createGetDragItem(): () => DragItem<TItem>;
    protected abstract getDragSourceType(): DragSourceType;
    private tooltipFeature?;
    constructor(dragSourceDropTarget: DropTarget, ghost: boolean, horizontal: boolean, template?: ElementParams | undefined, agComponents?: ComponentSelector[] | undefined);
    postConstruct(): void;
    protected isDraggable(): boolean;
    protected refreshDraggable(): void;
    protected setupAria(): void;
    protected addAdditionalAriaInstructions(ariaInstructions: string[], translate: (key: string, defaultValue: string) => string): void;
    private setupTooltip;
    protected getDragSourceId(): string | undefined;
    protected getDefaultIconName(): DragAndDropIcon;
    private addDragSource;
    protected setupComponents(): void;
    protected isRemovable(): boolean;
    protected refreshRemove(): void;
    private setupRemove;
    protected onKeyDown(e: KeyboardEvent): void;
    protected getDisplayValue(): string;
    private addElementClasses;
    destroy(): void;
}
export {};
