import { Observable } from "rxjs";
import { ChartOptions, DeepPartial, IChartApiBase, ISeriesApi, SeriesDataItemTypeMap, SeriesMarker, SeriesPartialOptionsMap, SeriesType, Time, ITimeScaleApi, IPriceScaleApi, Range, LogicalRange, MouseEventParams, DataChangedScope, Point } from "lightweight-charts";
import { SeriesFactory, SeriesFactoryReturnType } from "../series";
import { ChartFactory } from "../chart";
import { RequiresCustomSeriesView } from "../series/series.factory";
export declare function unInitialisedWarning<TThis extends TVChart<any>, Fn extends (...args: any[]) => any>(originalMethod: Fn, context: ClassMethodDecoratorContext<ThisParameterType<Fn>, Fn>): Fn | ((this: TThis, ...args: any[]) => any);
export declare class TVChart<T extends SeriesType, HorzScaleItem = Time> {
    #private;
    readonly initialised$: Observable<TVChart<T, HorzScaleItem> | undefined>;
    readonly click$: Observable<MouseEventParams<HorzScaleItem>>;
    readonly dblClick$: Observable<MouseEventParams<HorzScaleItem>>;
    readonly crossHairMove$: Observable<MouseEventParams<HorzScaleItem>>;
    readonly visibleTimeRangeChange$: Observable<Range<HorzScaleItem> | null>;
    readonly visibleLogicalRangeChange$: Observable<LogicalRange | null>;
    readonly sizeChange$: Observable<number>;
    readonly dataChange$: Observable<DataChangedScope>;
    get id(): string | undefined;
    get type(): T | undefined;
    get chart(): IChartApiBase<HorzScaleItem> | undefined;
    get series(): ISeriesApi<T, HorzScaleItem> | undefined;
    get options(): DeepPartial<ChartOptions> | undefined;
    get timeScale(): ITimeScaleApi<HorzScaleItem> | undefined;
    get leftPriceScale(): IPriceScaleApi | undefined;
    get rightPriceScale(): IPriceScaleApi | undefined;
    getPriceScale(priceScaleId: 'right' | 'left' | string): IPriceScaleApi | undefined;
    get isInitialised(): boolean;
    constructor(chartFactory: ChartFactory, seriesFactory: SeriesFactory);
    initialise(element: HTMLElement, type: T, id?: string, options?: DeepPartial<ChartOptions>, seriesOptions?: SeriesPartialOptionsMap[T], ...customSeriesView: RequiresCustomSeriesView<T, HorzScaleItem>): void;
    applyOptions(options?: DeepPartial<ChartOptions>): void;
    applySeriesOptions(seriesOptions?: SeriesPartialOptionsMap[T]): void;
    setData(data: SeriesDataItemTypeMap<HorzScaleItem>[T][]): void;
    setMarkers(markers: SeriesMarker<HorzScaleItem>[]): void;
    setVisibleLogicalRange(range: Range<number>): void;
    getVisibleLogicalRange(): LogicalRange | undefined | null;
    setVisibleRange(range: Range<HorzScaleItem>): void;
    setCrosshairPosition(price: number, horizontalPosition: HorzScaleItem, seriesApi: ISeriesApi<SeriesType, HorzScaleItem>): void;
    setCrossHairPositionByPoint(point: Point, time?: HorzScaleItem): void;
    clearCrosshairPosition(): void;
    addAdditionalSeries<ST extends SeriesType>(type: ST, seriesOptions: SeriesPartialOptionsMap[ST], ...customSeriesView: RequiresCustomSeriesView<ST, HorzScaleItem>): SeriesFactoryReturnType<ST, HorzScaleItem>;
    removeSeries(series?: ISeriesApi<SeriesType, HorzScaleItem>): void;
    resize(width: number, height: number, forceRepaint?: boolean): void;
    remove(): void;
}
