import { IEventEmitter } from '@breadstone/mosaik-elements';
import type { SortDirection } from '../../../Types/SortDirection';
import { CustomElement } from '../../Abstracts/CustomElement';
import type { ITableCellSortChangedEventDetail } from './Events/ITableCellSortChangedEventDetail';
import type { ITableCellElementEvents } from './ITableCellElementEvents';
import { ITableCellElementProps } from './ITableCellElementProps';
declare const TableCellElement_base: (abstract new (...args: Array<any>) => import("../../../Behaviors/Themeable").IThemeableProps) & (abstract new (...args: Array<any>) => import("../../../Behaviors/TextFormattable").ITextFormattableProps) & (abstract new (...args: Array<any>) => import("../../../Behaviors/TextOverflowable").ITextOverflowableProps) & typeof CustomElement & import("../../../Behaviors/Themeable").IThemeableCtor;
/**
 * Table Cell - A single unit within a table's row and column layout.
 *
 * @element mosaik-table-cell
 *
 * @fires tableCellSortChanged - Fired when the sort direction of the cell has changed.
 *
 * @public
 */
export declare class TableCellElement extends TableCellElement_base implements ITableCellElementProps, ITableCellElementEvents {
    private readonly _sortChanged;
    private _key;
    private _sorted;
    private _sortable;
    private _sortDirection;
    private _text;
    private _clickSubscription;
    /**
     * @public
     */
    constructor();
    /**
     * Returns the `is` property.
     *
     * @public
     * @static
     * @readonly
    */
    static get is(): string;
    /**
     * Gets or sets the `key` property.
     *
     * @public
     * @attr
     */
    get key(): string;
    set key(value: string);
    /**
     * Gets or sets the `sortable` property.
     *
     * @public
     * @attr
     */
    get sortable(): boolean;
    set sortable(value: boolean);
    /**
     * Gets or sets the `text` property.
     *
     * @public
     * @attr
     */
    get text(): string;
    set text(value: string);
    /**
     * Gets or sets the `sortDirection` property.
     *
     * @public
     * @attr
     */
    get sortDirection(): SortDirection | 'none';
    set sortDirection(value: SortDirection | 'none');
    /**
     * Called when the sort direction changes.
     * Provides reference to `{@link ITableCellSortChangedEventDetail}` as event argument.
     *
     * @public
     * @readonly
     * @eventProperty
     * @type IEventEmitter<ITableCellSortChangedEventDetail>
     */
    get sortChanged(): IEventEmitter<ITableCellSortChangedEventDetail>;
    /**
     * @public
     */
    sort(direction: SortDirection | 'none'): void;
    /**
     * @public
     */
    unsort(): void;
    /**
     * @public
     * @override
     */
    attributeChangedCallback(name: keyof TableCellElement, oldValue: string, newValue: string): void;
    /**
     * @private
     */
    private handleSort;
}
/**
 * @public
 */
export declare namespace TableCellElement {
    type Props = ITableCellElementProps;
}
/**
 * @public
 */
declare global {
    interface HTMLElementTagNameMap {
        'mosaik-table-cell': TableCellElement;
    }
    interface HTMLElementEventMap {
        tableCellSortChanged: CustomEvent<ITableCellSortChangedEventDetail>;
    }
}
export {};
//# sourceMappingURL=TableCellElement.d.ts.map