export type DataTableColumnAlign = 'left' | 'center' | 'right';
export type DataTableColumnType = 'default' | 'bold' | 'amount' | 'date' | 'number' | 'time' | 'badge' | 'icon' | 'image' | 'template';
export type DatatableColumnSortDirection = 'asc' | 'desc';
export type DatatableMappingData = {
    to?: string;
    value?: {
        [key: string]: string | number;
    } | string | number;
    from?: string;
};
export declare class XDatatableColumn {
    /**
     * InnerHTML after rendering
     */
    content: string;
    /**
     * JSON Path data field for column
     */
    field: string;
    /**
     * Column label
     */
    label: string;
    /**
     * Column is resizable by field
     */
    resizable: boolean;
    /**
     * Column is sortable and enable interactions
     */
    sortable: boolean;
    /**
     * Column active sort direction
     */
    sortdir: DatatableColumnSortDirection;
    /**
     * Column type
     */
    type: DataTableColumnType;
    /**
     * Column width
     */
    width: string;
    /**
     * Column alignment
     */
    align: DataTableColumnAlign;
    /**
     * Column mapping content
     */
    mapping: Array<DatatableMappingData>;
    /**
     * Component element
     */
    el: HTMLElement;
    /**
     * Element event on slot make changes
     */
    handleSlotChange(): void;
    /**
     * Update the child mapping and render the result
     */
    computeChildMappingItems(): void;
    /**
     * On element will mounted
     */
    componentWillLoad(): void;
    /**
     * Render element
     */
    render(): any;
}
