// Generated by dts-bundle-generator v8.0.1

import { DataChangedScope, IChartApi, ISeriesApi, ISeriesPrimitive, SeriesAttachedParameter, SeriesOptionsMap, Time } from 'lightweight-charts';

export interface VisiblePriceRangeUtilOptions {
}
declare abstract class PluginBase implements ISeriesPrimitive<Time> {
	private _chart;
	private _series;
	protected dataUpdated?(scope: DataChangedScope): void;
	attached({ chart, series }: SeriesAttachedParameter<Time>): void;
	detached(): void;
	get chart(): IChartApi;
	get series(): ISeriesApi<keyof SeriesOptionsMap>;
}
export type Callback<T1 = void> = (param1: T1) => void;
export interface ISubscription<T1 = void> {
	subscribe(callback: Callback<T1>, linkedObject?: unknown, singleshot?: boolean): void;
	unsubscribe(callback: Callback<T1>): void;
	unsubscribeAll(linkedObject: unknown): void;
}
export interface VisiblePriceRange {
	bottom: number;
	top: number;
}
export type VisiblePriceRangeResult = Readonly<VisiblePriceRange> | null;
export declare class VisiblePriceRangeUtil extends PluginBase {
	_options: VisiblePriceRangeUtilOptions;
	_currentRange: VisiblePriceRange | null;
	private _changed;
	constructor(options?: Partial<VisiblePriceRangeUtilOptions>);
	updateAllViews(): void;
	get options(): VisiblePriceRangeUtilOptions;
	applyOptions(options: Partial<VisiblePriceRangeUtilOptions>): void;
	priceRangeChanged(): ISubscription<VisiblePriceRangeResult>;
	getVisiblePriceRange(): VisiblePriceRangeResult;
	private _checkPriceRange;
	private _measurePriceRange;
}

export {};
