import { _ModuleSupport } from 'ag-charts-community';
import type { Bounds4, Point } from 'ag-charts-core';
import type { ChannelTextProperties } from '../annotationProperties';
import type { AnnotationContext, DataPoint } from '../annotationTypes';
import { CollidableLine } from './collidableLineScene';
import type { CollidableText } from './collidableTextScene';
import type { Handle } from './handle';
import { LinearScene } from './linearScene';
type ChannelHandle = Partial<'topLeft' | 'topRight' | 'bottomLeft' | 'bottomRight' | 'topMiddle' | 'bottomMiddle'>;
export declare abstract class ChannelScene<Datum extends {
    background: {
        fill?: string;
        fillOpacity?: number;
    };
    locked?: boolean;
    visible?: boolean;
    start: DataPoint;
    end: DataPoint;
    bottom: {
        start: DataPoint;
        end: DataPoint;
    };
    strokeWidth?: number;
    text?: ChannelTextProperties;
    isWriteable: () => boolean;
}> extends LinearScene<Datum> {
    protected handles: {
        [key: string]: Handle;
    };
    protected overflowContinuous: number;
    protected topLine: CollidableLine;
    protected bottomLine: CollidableLine;
    background: _ModuleSupport.Path<any>;
    text?: CollidableText;
    private readonly anchor;
    update(datum: Datum, context: AnnotationContext): void;
    toggleHandles(show: boolean | Partial<Record<ChannelHandle, boolean>>): void;
    toggleActive(active: boolean): void;
    stopDragging(): void;
    getAnchor(): _ModuleSupport.FloatingToolbarAnchor;
    getCursor(): string | undefined;
    containsPoint(x: number, y: number): boolean;
    getNodeAtCoords(x: number, y: number): string | undefined;
    protected abstract updateLines(datum: Datum, top: Bounds4, bottom: Bounds4, context: AnnotationContext, naturalTop: Bounds4, naturalBottom: Bounds4): void;
    protected abstract updateHandles(datum: Datum, top: Bounds4, bottom: Bounds4): void;
    protected abstract updateText(datum: Datum, top: Bounds4, bottom: Bounds4): void;
    protected readonly updateBackground: (datum: {
        background: import("ag-charts-community").FillOptions;
    }, top: Bounds4, bottom: Bounds4, context: AnnotationContext) => void;
    protected updateAnchor(top: Bounds4, bottom: Bounds4): void;
    abstract getBackgroundPoints(datum: Datum, top: Bounds4, bottom: Bounds4, bounds: Bounds4): Point[];
}
export {};
