import { default as CxIcon } from '../../../../../atoms/src/components/icon/icon.ts';
import { default as CxLineClamp } from '../../../../../atoms/src/components/line-clamp/line-clamp.ts';
import { default as CxSpinner } from '../../../../../atoms/src/components/spinner/spinner.ts';
import { default as CxTooltip } from '../../../../../atoms/src/components/tooltip/tooltip.ts';
import { default as CxTypography } from '../../../../../atoms/src/components/typography/typography.ts';
import { default as CortexElement } from '../../../../../base/src/cortex-element.ts';
import { CanvasData, FrameCache, FrameCacheItem, SubClip } from '../../../../../types/src/video-editor';
import { CSSResultGroup, TemplateResult } from 'lit';

type FrameItem = {
    canvasSrc: string | null;
    currentTime: number;
    frameHeight: number;
    frameWidth: number;
    x: number;
    y: number;
};
export default class CxVideoEditorTrack extends CortexElement {
    static styles: CSSResultGroup;
    static dependencies: {
        'cx-icon': typeof CxIcon;
        'cx-line-clamp': typeof CxLineClamp;
        'cx-spinner': typeof CxSpinner;
        'cx-tooltip': typeof CxTooltip;
        'cx-typography': typeof CxTypography;
    };
    private readonly localize;
    data: Partial<SubClip>;
    selected: boolean;
    scale: number;
    maxScale: number;
    maxDuration: number;
    cache: FrameCache;
    canvasSrc: string;
    canvas: CanvasData | null;
    expectedFrameCount: number;
    frameIterator: AsyncGenerator<FrameCacheItem, void, unknown> | null;
    interval: number;
    video: HTMLVideoElement | null;
    private previousExtractionKey;
    get duration(): number;
    get width(): number;
    get isError(): boolean;
    get items(): FrameItem[];
    runConnectedCallback(): void;
    disconnectedCallback(): void;
    private initVideo;
    private getGenerator;
    handleDataChange(): Promise<void>;
    private renderFrame;
    private handleClick;
    render(): TemplateResult;
}
declare global {
    interface HTMLElementTagNameMap {
        'cx-video-editor-track': CxVideoEditorTrack;
    }
}
export {};
