import { Editor as TiptapEditor } from '@tiptap/core';
import { default as CxCard } from '../../../../../../../atoms/src/components/card/card.ts';
import { default as CxCheckbox } from '../../../../../../../atoms/src/components/checkbox/checkbox.ts';
import { default as CxColorPicker } from '../../../../../../../atoms/src/components/color-picker/color-picker.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 CxImage } from '../../../../../../../atoms/src/components/image/image.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 CxSelect } from '../../../../../../../atoms/src/components/select/select.ts';
import { default as CxSpace } from '../../../../../../../atoms/src/components/space/space.ts';
import { default as CxSpinner } from '../../../../../../../atoms/src/components/spinner/spinner.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 CxBorderInputGroup } from '../../../../../../../molecules/src/border-input-group/border-input-group.ts';
import { Asset, AssetTypeString, RTE_IMAGE } from '../../../../../../../types/src/content-builder';
import { PropertyValues } from 'lit';

/**
 * @summary The `cx-image-dialog` component is used to select a block type or a template for the content builder.
 *
 * @event cx-content-builder-block-select - Emitted when the user selects a block type.
 * @event cx-content-builder-template-select - Emitted when the user selects a template.
 */
export default class CxImageDialog extends CortexElement {
    static readonly styles: import('lit').CSSResult[];
    static readonly dependencies: {
        'cx-border-input-group': typeof CxBorderInputGroup;
        'cx-card': typeof CxCard;
        'cx-checkbox': typeof CxCheckbox;
        'cx-color-picker': typeof CxColorPicker;
        'cx-dialog': typeof CxDialog;
        'cx-grid': typeof CxGrid;
        'cx-grid-item': typeof CxGridItem;
        'cx-image': typeof CxImage;
        'cx-input': typeof CxInput;
        'cx-line-clamp': typeof CxLineClamp;
        'cx-select': typeof CxSelect;
        'cx-space': typeof CxSpace;
        'cx-spinner': typeof CxSpinner;
        'cx-typography': typeof CxTypography;
    };
    private readonly localize;
    dialog: CxDialog;
    open: boolean;
    tiptapEditor: TiptapEditor;
    src: string;
    data: RTE_IMAGE;
    dialogTitle: string;
    handleDialogCancel: () => void;
    handleDialogConfirm: () => void;
    /**
     * The boundary property of the confirm popover's dropdown/dialog popup.
     */
    boundary: HTMLElement;
    /**
     * A callback function that is called when the user requests to select an asset.
     * It should return a promise that resolves to an Asset object.
     */
    onRequestAsset: ((type: AssetTypeString, multiple?: boolean, accepts?: string[]) => Promise<Asset>) | undefined;
    isValidSrc: boolean | undefined;
    originalSize: {
        height: number;
        width: number;
    };
    get ratio(): string[];
    setSrc(src: string): void;
    show(): void;
    hide(): void;
    private resetState;
    private handleClose;
    private handleAfterHide;
    private handleSourceChange;
    updated(changedProperties: PropertyValues): void;
    private handleSourceURLInputChange;
    private handleAlternativeTextInputChange;
    private handleTitleInputChange;
    private handleWidthInputChange;
    private handleHeightInputChange;
    private handleKeepRatioCheckboxChange;
    private handleBrowserClick;
    private handleImageLoad;
    private handleBorderWidthInputChange;
    private handleBorderWidthUnitInputChange;
    private handleBorderStyleInputChange;
    private handleBorderColorInputChange;
    private handleColorPickerChange;
    private handleColorPickerClear;
    renderBorderStyle(): import('lit').TemplateResult<1>;
    render(): import('lit').TemplateResult<1>;
}
declare global {
    interface HTMLElementTagNameMap {
        'cx-image-dialog': CxImageDialog;
    }
}
