import type { DeepRequired, RequireOptional } from 'ag-charts-core';
import type { AgChartInstance, AgSelectionChangeEvent, AgTouchOptions } from 'ag-charts-types';
import { Group } from '../scene/group';
import type { CaptionLike } from './captionLike';
import type { ChartHighlight } from './chartHighlight';
import type { ChartMode } from './chartMode';
import type { ChartType } from './chartType';
import type { SeriesProperties } from './series/seriesProperties';
import type { DatumIndexType, ISeries, SeriesNodeDatum } from './series/seriesTypes';
export type ChartServiceEvent = RequireOptional<Omit<AgSelectionChangeEvent<unknown, unknown>, 'context'>>;
export type ChartServiceEventType = ChartServiceEvent['type'];
type BaseSeries = ISeries<DatumIndexType, SeriesNodeDatum<DatumIndexType>, SeriesProperties<object>>;
export interface ChartService {
    readonly id: string;
    readonly mode: ChartMode;
    readonly styleNonce?: string;
    readonly title: CaptionLike;
    readonly series: BaseSeries[];
    readonly seriesRoot: Group;
    readonly selectionRoot: Group;
    readonly publicApi?: AgChartInstance;
    readonly touch: DeepRequired<AgTouchOptions>;
    readonly context?: unknown;
    readonly highlight?: ChartHighlight;
    getChartType(): ChartType;
    overrideFocusVisible(visible: boolean | undefined): void;
    hasListener(type: ChartServiceEventType): boolean;
    callListener(event: ChartServiceEvent): void;
}
export {};
