import { SvelteComponentTyped } from 'svelte';
import type {
    IChartApi,
    ChartOptions,
    DeepPartial,
    MouseEventParams
} from 'lightweight-charts';
import type {Reference} from '../internal/utils.js';

export interface ChartContainerProps {
    ref?: Reference<HTMLElement>;
    class?: string;
    id?: string;
    style?: string;
}

export interface $$PROPS extends DeepPartial<ChartOptions> {
    ref?: Reference<IChartApi>;
    container?: ChartContainerProps;
}

export interface $$EVENTS_DETAIL {
    crosshairMove: MouseEventParams,
    click: MouseEventParams,
}

export type $$EVENTS = { [K in keyof $$EVENTS_DETAIL]: CustomEvent<$$EVENTS_DETAIL[K]> & { type: K } };

export default class Chart extends SvelteComponentTyped<$$PROPS, $$EVENTS> {}