import { Annotation, AnnotationView } from "./annotation"; import { ArrowHead } from "./arrow_head"; import { ColumnarDataSource } from "../sources/columnar_data_source"; import { LineVector } from "../../core/property_mixins"; import { Line } from "../../core/visuals"; import { SpatialUnits } from "../../core/enums"; import { Arrayable } from "../../core/types"; import * as p from "../../core/properties"; import { Context2d } from "../../core/util/canvas"; export declare type Coords = [Arrayable, Arrayable]; export declare class ArrowView extends AnnotationView { model: Arrow; visuals: Arrow.Visuals; protected _x_start: Arrayable; protected _y_start: Arrayable; protected _x_end: Arrayable; protected _y_end: Arrayable; initialize(): void; connect_signals(): void; set_data(source: ColumnarDataSource): void; protected _map_data(): [Coords, Coords]; render(): void; protected _arrow_head(ctx: Context2d, action: "render" | "clip", head: ArrowHead, start: Coords, end: Coords): void; protected _arrow_body(ctx: Context2d, start: Coords, end: Coords): void; } export declare namespace Arrow { type Attrs = p.AttrsOf; type Props = Annotation.Props & LineVector & { x_start: p.NumberSpec; y_start: p.NumberSpec; start_units: p.Property; start: p.Property; x_end: p.NumberSpec; y_end: p.NumberSpec; end_units: p.Property; end: p.Property; source: p.Property; x_range_name: p.Property; y_range_name: p.Property; }; type Visuals = Annotation.Visuals & { line: Line; }; } export interface Arrow extends Arrow.Attrs { } export declare class Arrow extends Annotation { properties: Arrow.Props; constructor(attrs?: Partial); static initClass(): void; }