import { default as CxButton } from '../../../../../atoms/src/components/button/button.ts';
import { default as CxCheckbox } from '../../../../../atoms/src/components/checkbox/checkbox.ts';
import { default as CxDialog } from '../../../../../atoms/src/components/dialog/dialog.ts';
import { default as CxDivider } from '../../../../../atoms/src/components/divider/divider.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 CxRadio } from '../../../../../atoms/src/components/radio/radio.ts';
import { default as CxRadioGroup } from '../../../../../atoms/src/components/radio-group/radio-group.ts';
import { default as CxSpace } from '../../../../../atoms/src/components/space/space.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 CxAssetPicker } from '../../../../../molecules/src/asset-picker/asset-picker.ts';
import { default as CxDynamicSelect } from '../../../../../molecules/src/dynamic-select/dynamic-select.ts';
import { default as CxFolderSelect } from '../../../../../molecules/src/folder-select/folder-select.ts';
import { Asset, AssetTypeString, DialogType } from '../../../../../types/src/content-builder';
import { Image } from '../../../../../types/src/gallery-config';
import { GalleryItemCardType } from '../../../../../types/src/gallery-item';
import { default as CxFolderPicker } from '../folder-picker/folder-picker';

export type CxContentBuilderGalleryConfigSaveEvent = CustomEvent<{
    image: Image;
    selectedPosition: number;
}>;
/**
 * @summary The `cx-gallery-config` component is a dialog that allows the user to configure a single gallery item.
 *
 * @event cx-gallery-config-save - Emitted when the user saves the configuration.
 */
export default class CxGalleryConfig extends CortexElement {
    static readonly styles: import('lit').CSSResult[];
    static readonly dependencies: {
        'cx-asset-picker': typeof CxAssetPicker;
        'cx-button': typeof CxButton;
        'cx-checkbox': typeof CxCheckbox;
        'cx-dialog': typeof CxDialog;
        'cx-divider': typeof CxDivider;
        'cx-dynamic-select': typeof CxDynamicSelect;
        'cx-folder-picker': typeof CxFolderPicker;
        'cx-folder-select': typeof CxFolderSelect;
        'cx-grid': typeof CxGrid;
        'cx-grid-item': typeof CxGridItem;
        'cx-input': typeof CxInput;
        'cx-radio': typeof CxRadio;
        'cx-radio-group': typeof CxRadioGroup;
        'cx-space': typeof CxSpace;
        'cx-typography': typeof CxTypography;
    };
    private readonly localize;
    dialog: CxDialog;
    assetPicker: CxAssetPicker;
    form: HTMLFormElement;
    variant: GalleryItemCardType;
    dialogVariant: DialogType;
    /**
     * 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.
     */
    onRequestAsset: ((type: AssetTypeString) => Promise<Asset>) | undefined;
    /**
     * The image being edited. If not provided, a new image will be created.
     */
    image: Image | null;
    /**
     * The position of the image being edited. -1 for new images.
     */
    selectedPosition: number;
    /**
     * Whether the asset picker is disabled.
     */
    disabledAssetPicker: boolean;
    editedImage: Image;
    assetRequestingStatus: boolean;
    selectedPageLabel: string;
    private isThumbnailManuallySet;
    get showOpenInNewTab(): boolean;
    get galleryPickerDialogTitle(): string;
    constructor();
    private apiGetTeamSpaceSpaceList;
    private apiGetPagesAndLinks;
    fetchSelectedPage(): Promise<void>;
    /**
     * Opens the dialog with the given image data
     */
    show(image?: Image | null, selectedPosition?: number): void;
    hide(): void;
    private handleInputChange;
    private handleSelectionChange;
    private handleAfterHide;
    private resetState;
    private handleFormSubmit;
    private handleSaveClick;
    private handleClose;
    private handleAssetRequestStatus;
    private handleAssetSelect;
    private handleAssetDelete;
    private handleObjectFitChange;
    private handleOpenInNewTabChange;
    private handleFolderChange;
    private handleFolderDelete;
    render(): import('lit').TemplateResult<1>;
}
declare global {
    interface HTMLElementTagNameMap {
        'cx-gallery-config': CxGalleryConfig;
    }
}
