import { ValidationController } from 'aurelia-validation';
import { Router } from 'aurelia-router';
import { BindingEngine, ViewSlot } from "aurelia-framework";
import { UIColumn } from "./ui-column";
import { BindingSignaler } from 'aurelia-templating-resources';
import { UITableAction } from './ui-table-action';
import { IMenuItem } from "../../menu/ui-menus";
export declare class BodyCell {
    private router;
    private signaler;
    private validationController;
    private bindingEngine;
    column: UIColumn | UITableAction;
    indexDrag: number;
    onCellClicked?: (obj: {
        record: KeyValue;
    }) => void;
    rowRoute?: string | ((obj: {
        record: KeyValue;
    }) => string);
    protected el: HTMLElement;
    protected overrideContext: any;
    currentRecord: any;
    render: (cell: any) => {};
    tableAuTargetId: number;
    colIndex: number;
    focusData: {
        data: any;
        colIndex: number;
    } | null;
    rowIndex: number;
    onCellSelected: (obj: object) => boolean;
    private route;
    private hasChangesSubscriptionKey;
    private view;
    private isRendered;
    menuItemsBodyCell: IMenuItem[];
    slot: ViewSlot;
    activeField: EventTarget;
    private _title;
    constructor(router: Router, signaler: BindingSignaler, validationController: ValidationController, bindingEngine: BindingEngine);
    bind(bindingContext: Object, overrideContext?: any): Promise<void>;
    get isClickable(): boolean;
    get title(): string;
    setTitle(): void;
    isActionColumn(): boolean;
    indexDragChanged(newValue: any, oldValue: any): Promise<void>;
    protected attached(): Promise<void>;
    protected detached(): void;
    protected internalOnCellClicked($event: MouseEvent): Promise<void>;
    private internalOnLinkClick;
    private rowClickIgnoreElements;
    protected isRowClickAllowed(target: HTMLElement): boolean;
    currentRecordChanged(newValue: any, oldValue: any): Promise<void>;
    tableAuTargetIdChanged(): void;
    debounceCompile: (newVersion?: boolean) => void;
    tryCompile(newVersion?: boolean): void;
    validateCurrentRecord(): void;
    compileCell(el: Element, newVersion?: boolean): void;
    setActiveField(): void;
    private cleanUp;
    compileActions(): void;
    processCurrentRecord(): Promise<void>;
    cellDisabled(record: any): boolean;
}
