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 CxDivider } from '../../../atoms/src/components/divider/divider.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 CortexElement } from '../../../base/src/cortex-element.ts';
import { VideoChapterInSeconds, VideoChapterInTimecode } from '../../../types/src/video-chapters-manager';
import { CSSResultGroup } from 'lit';

/**
 * @summary <cx-video-chapters-manager> is a component that allows the user to edit the chapters of a video.
 *
 * @property {String} video-record-id - The ID of the video record
 * @property {String} label - The label of the dialog
 * @method show - Shows the dialog
 * @method hide - Hides the dialog
 *
 * @event cx-save - Emitted when the chapters are saved
 */
export default class CxVideoChaptersManager extends CortexElement {
    static readonly styles: CSSResultGroup;
    static readonly dependencies: {
        'cx-button': typeof CxButton;
        'cx-dialog': typeof CxDialog;
        'cx-divider': typeof CxDivider;
        'cx-space': typeof CxSpace;
        'cx-table': typeof CxTable;
    };
    private dialog;
    private readonly localize;
    private readonly cortexPopupController;
    private readonly columns;
    private readonly hoverMenu;
    private readonly placeholder;
    private _apiGetChapters;
    private _apiUpdateChapters;
    table: CxTable;
    /**
     * The video record ID to use
     */
    videoRecordID: string;
    /**
     * The label to use for the dialog
     */
    label: string;
    /**
     * Chapter data fetched from API, with `start` property is a number in seconds.
     */
    data: VideoChapterInSeconds[];
    /**
     * Chapter data fetched from API, with `start` property is a string in timecode.
     */
    tableData: VideoChapterInTimecode[];
    isSaving: boolean;
    originalContainer: Element | null;
    show(): void;
    hide(): void;
    get open(): boolean;
    private getChapters;
    private handleAddChapter;
    private handleSave;
    private handleCancel;
    private handleRowActions;
    private handleAfterShow;
    render(): import('lit').TemplateResult<1>;
}
declare global {
    interface HTMLElementTagNameMap {
        'cx-video-chapters-manager': CxVideoChaptersManager;
    }
}
