import { IEventEmitter } from '@breadstone/mosaik-elements';
import type { ITableSortChangedEventDetail } from '../../../events';
import type { SortDirection } from '../../../Types/SortDirection';
import { TableSelectionMode } from '../../../Types/TableSelectionMode';
import { TableSelectionType } from '../../../Types/TableSelectionType';
import { CustomElement } from '../../Abstracts/CustomElement';
import { ITableCellElementProps } from './ITableCellElementProps';
declare const TableCellElement_base: (abstract new (...args: Array<any>) => import("../../../Behaviors/Themeable").IThemeableProps) & (abstract new (...args: Array<any>) => import("../../../Behaviors/Selectable").ISelectableProps & import("../../../Behaviors/Selectable").ISelectableEvents & import("../../../Behaviors/Selectable").ISelectable) & (abstract new (...args: Array<any>) => import("../../../Behaviors/Disableable").IDisableableProps) & (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
 *
 * @slot  - The default slot.
 *
 * @csspart icon - The icon part.
 *
 * @cssprop {String} --table-cell-background-color - The cell background color CSS custom property.
 * @cssprop {String} --table-cell-border-color - The cell border color CSS custom property.
 * @cssprop {String} --table-cell-border-radius - The cell border radius CSS custom property.
 * @cssprop {String} --table-cell-border-width - The cell border width CSS custom property.
 * @cssprop {String} --table-cell-font-family - The cell font family CSS custom property.
 * @cssprop {String} --table-cell-font-letter-spacing - The cell font letter spacing CSS custom property.
 * @cssprop {String} --table-cell-font-line-height - The cell font line height CSS custom property.
 * @cssprop {String} --table-cell-font-size - The cell font size CSS custom property.
 * @cssprop {String} --table-cell-font-text-decoration - The cell font text decoration CSS custom property.
 * @cssprop {String} --table-cell-font-text-transform - The cell font text transform CSS custom property.
 * @cssprop {String} --table-cell-font-weight - The cell font weight CSS custom property.
 * @cssprop {String} --table-cell-foreground-color - The cell foreground color CSS custom property.
 * @cssprop {String} --table-cell-gap - The cell gap CSS custom property.
 * @cssprop {String} --table-cell-padding-bottom - The cell padding bottom CSS custom property.
 * @cssprop {String} --table-cell-padding-left - The cell padding left CSS custom property.
 * @cssprop {String} --table-cell-padding-right - The cell padding right CSS custom property.
 * @cssprop {String} --table-cell-padding-top - The cell padding top CSS custom property.
 * @cssprop {String} --table-cell-shadow - The cell shadow CSS custom property.
 * @cssprop {String} --table-cell-shadow-blur - The cell shadow blur CSS custom property.
 * @cssprop {String} --table-cell-shadow-color - The cell shadow color CSS custom property.
 * @cssprop {String} --table-cell-shadow-offset-x - The cell shadow offset x CSS custom property.
 * @cssprop {String} --table-cell-shadow-offset-y - The cell shadow offset y CSS custom property.
 * @cssprop {String} --table-cell-shadow-spread - The cell shadow spread CSS custom property.
 * @cssprop {String} --table-cell-transition-duration - The cell transition duration CSS custom property.
 * @cssprop {String} --table-cell-transition-mode - The cell transition mode CSS custom property.
 * @cssprop {String} --table-cell-transition-property - The cell transition property CSS custom property.
 * @cssprop {String} --table-cell-translate - The cell translate CSS custom property.
 *
 * @fires tableSortChanged {TableSortChangedEvent} - Fired when the sort direction of the cell has changed.
 * @fires selected {SelectedEvent} - Fired when the cell is selected.
 * @fires deselected {DeselectedEvent} - Fired when the cell is deselected.
 *
 * @dependency mosaik-icon - The Icon element.
 * @dependency mosaik-text - The Text element.
 *
 * @example
 * Basic table cell with text:
 * ```html
 * <mosaik-table-cell text="Alice"></mosaik-table-cell>
 * ```
 *
 * @example
 * Sortable header cell:
 * ```html
 * <mosaik-table-cell text="Name" key="name" sortable></mosaik-table-cell>
 * ```
 *
 * @public
 */
export declare class TableCellElement extends TableCellElement_base implements ITableCellElementProps {
    private readonly _inheritance;
    private readonly _tableSortChanged;
    private _key;
    private _sorted;
    private _sortable;
    private _sortDirection;
    private _text;
    private _clickSubscription;
    private _selectionClickSubscription;
    private _table;
    /**
     * @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 `ITableSortChangedEventDetail` as event argument.
     *
     * @public
     * @readonly
     * @eventProperty
     * @type IEventEmitter<ITableSortChangedEventDetail>
     */
    get tableSortChanged(): IEventEmitter<ITableSortChangedEventDetail>;
    /**
     * Sorts the cell in the specified direction.
     *
     * @public
     */
    sort(direction: SortDirection | 'none'): void;
    /**
     * Unsorts the cell.
     *
     * @public
     */
    unsort(): void;
    /**
     * @public
     * @override
     */
    attributeChangedCallback(name: keyof TableCellElement, oldValue: string, newValue: string): void;
    /**
     * @public
     * @override
     */
    disconnectedCallback(): void;
    /**
     * @protected
     * @override
     */
    protected onApplyTemplate(): void;
    /**
     * @protected
     */
    protected onSelectionModePropertyChanged(_prev: TableSelectionMode, _next: TableSelectionMode): void;
    /**
     * @protected
     */
    protected onSelectionTypePropertyChanged(_prev: TableSelectionType, _next: TableSelectionType): void;
    /**
     * Sets up or tears down the click handler based on the inherited selection config.
     *
     * @private
     */
    private updateSelectionClickHandler;
    /**
     * Handles click events for cell selection.
     *
     * @private
     */
    private handleCellClick;
    /**
     * Handles click events for row selection.
     *
     * @private
     */
    private handleSort;
}
/**
 * @public
 */
export declare namespace TableCellElement {
    type Props = ITableCellElementProps;
}
/**
 * @public
 */
declare global {
    interface HTMLElementTagNameMap {
        'mosaik-table-cell': TableCellElement;
    }
}
export {};
//# sourceMappingURL=TableCellElement.d.ts.map