import { default as CxButton } from '../../../atoms/src/components/button/button.ts';
import { default as CxDialog } from '../../../atoms/src/components/dialog/dialog.ts';
import { default as CxGrid } from '../../../atoms/src/components/grid/grid.ts';
import { default as CxGridItem } from '../../../atoms/src/components/grid-item/grid-item.ts';
import { default as CxInput } from '../../../atoms/src/components/input/input.ts';
import { default as CxLineClamp } from '../../../atoms/src/components/line-clamp/line-clamp.ts';
import { default as CxOption } from '../../../atoms/src/components/option/option.ts';
import { default as CxRadio } from '../../../atoms/src/components/radio/radio.ts';
import { default as CxRadioGroup } from '../../../atoms/src/components/radio-group/radio-group.ts';
import { default as CxSelect } from '../../../atoms/src/components/select/select.ts';
import { default as CxSpace } from '../../../atoms/src/components/space/space.ts';
import { default as CxTable } from '../../../atoms/src/components/table/table.ts';
import { default as CxTypography } from '../../../atoms/src/components/typography/typography.ts';
import { default as CortexElement } from '../../../base/src/cortex-element.ts';
import { default as CxDynamicSelect } from '../dynamic-select/dynamic-select.ts';
import { Asset, AssetTypeString } from '../../../types/src/content-builder';
import { CSSResultGroup } from 'lit';
import { default as CxAssetPicker } from '../asset-picker/asset-picker';

export declare const columnDefaults: {
    resizable: boolean;
};
declare enum TabType {
    General = "general",
    Translation = "translation"
}
/**
 * @summary CxListEditor
 */
export default class CxListEditor extends CortexElement {
    static readonly styles: CSSResultGroup;
    static readonly dependencies: {
        'cx-asset-picker': typeof CxAssetPicker;
        'cx-button': typeof CxButton;
        'cx-dialog': typeof CxDialog;
        'cx-dynamic-select': typeof CxDynamicSelect;
        'cx-grid': typeof CxGrid;
        'cx-grid-item': typeof CxGridItem;
        'cx-input': typeof CxInput;
        'cx-line-clamp': typeof CxLineClamp;
        'cx-option': typeof CxOption;
        'cx-radio': typeof CxRadio;
        'cx-radio-group': typeof CxRadioGroup;
        'cx-select': typeof CxSelect;
        'cx-space': typeof CxSpace;
        'cx-table': typeof CxTable;
        'cx-typography': typeof CxTypography;
    };
    private readonly localize;
    dialog: CxDialog;
    table: CxTable;
    data: Array<Record<string, string>>;
    canAdd: boolean;
    addDialogLabel: string;
    editDialogLabel: string;
    displayField: string;
    descriptionField: string;
    addItemText: string;
    sampleItem: Record<string, string>;
    useEvents: boolean;
    sortable: boolean;
    loadingEvent: string;
    loadingItemIndex: string | undefined;
    columns: Array<Record<string, unknown>>;
    noHeader: boolean;
    rowHeight: number;
    defaultLanguage: string;
    /**
     * The list of languages available in the content builder.
     * This is the list of languages that will be used to store the translatable texts.
     */
    supportedLanguages: string[];
    /**
     * The boundary property of the confirm popover's dropdown/dialog popup.
     */
    boundary: HTMLElement;
    /**
     * Function to request an asset.
     * This is used to open the asset picker dialog when the user selects an asset from the DAM.
     * The function should return a promise that resolves to an Asset object.
     * @param type - The type of asset to request (image, video, etc.).
     * @returns A promise that resolves to an Asset object.
     * @default undefined
     */
    onRequestAsset: ((type: AssetTypeString, multiple?: boolean, accepts?: string[]) => Promise<Asset | Record<string, Asset>>) | undefined;
    editedItem: Record<string, string> | null;
    isAdding: boolean;
    private columnsMap;
    private sortedEntries;
    private translatableControls;
    private disableCloseConfigDialog;
    get tabs(): TabType[];
    handleColumnsChange(): void;
    handleEditedItemChange(): void;
    private readonly hoverMenu;
    private readonly OMITTED_FIELDS;
    private handleTableActions;
    private handleCancelClick;
    private handleRequestClose;
    private handleAddClick;
    private handleSaveClick;
    private handleTableRowMoved;
    private handleAssetRequestStatus;
    handleLoadingEventChange(): Promise<void>;
    private handleChange;
    private renderControls;
    render(): import('lit').TemplateResult<1>;
}
declare global {
    interface HTMLElementTagNameMap {
        'cx-list-editor': CxListEditor;
    }
}
export {};
