import { CompositeLayer } from '@deck.gl/core';
import { Vector3 } from '@math.gl/core';
import { PathDirection } from "./create-path-markers.js";
import { GeometryLayer } from "./geometry-layer.js";
import type { MarkerPlacementsAccessor, PathDirectionAccessor, PathMarker } from "./create-path-markers.js";
import type { Accessor, Color, DefaultProps, GetPickingInfoParams, Layer, LayerDataSource, LayerProps, Position, UpdateParameters } from '@deck.gl/core';
import type { ArcLayerProps, LineLayerProps, PathLayerProps } from '@deck.gl/layers';
export { PathDirection };
export type { MarkerPlacementsAccessor, MarkerPlacementsAccessorContext, PathDirectionAccessor, PathGeometry, PathMarker } from "./create-path-markers.js";
/** Properties supported by {@link DependencyArrowLayer}. */
export type DependencyArrowLayerProps<DataT = unknown> = LayerProps & _DependencyArrowLayerProps<DataT>;
type _DependencyArrowLayerProps<DataT = unknown> = {
    /** Dependency data rendered by the layer. */
    data: LayerDataSource<DataT>;
    /** Dependency routing mode. @defaultValue 'path' */
    mode?: 'path' | 'line' | 'arc';
    /** Accessor returning nested or flat dependency path coordinates. */
    getPath?: PathLayerProps<DataT>['getPath'];
    /** Accessor returning dependency line color. */
    getColor?: LineLayerProps<DataT>['getColor'];
    /** Accessor returning dependency line width. */
    getWidth?: LineLayerProps<DataT>['getWidth'];
    /** Units used by dependency line width. */
    widthUnits?: LineLayerProps<DataT>['widthUnits'];
    /** Scale applied to dependency line width. */
    widthScale?: LineLayerProps<DataT>['widthScale'];
    /** Minimum rendered dependency line width in pixels. */
    widthMinPixels?: LineLayerProps<DataT>['widthMinPixels'];
    /** Maximum rendered dependency line width in pixels. */
    widthMaxPixels?: LineLayerProps<DataT>['widthMaxPixels'];
    /** Arc segment count used when `mode` is `'arc'`. */
    arcNumSegments?: ArcLayerProps<DataT>['numSegments'];
    /** Accessor returning arc height when `mode` is `'arc'`. */
    getArcHeight?: ArcLayerProps<DataT>['getHeight'];
    /** Accessor returning arc tilt when `mode` is `'arc'`. */
    getArcTilt?: ArcLayerProps<DataT>['getTilt'];
    /** Accessor returning marker direction flags. @defaultValue PathDirection.FORWARD */
    getDirection?: PathDirectionAccessor<DataT>;
    /** Marker color accessor; falls back to `getColor` when omitted. */
    getMarkerColor?: Accessor<DataT, Color>;
    /** Accessor returning marker ratios along the path, from 0 at start to 1 at end. */
    getMarkerPlacements?: MarkerPlacementsAccessor<DataT>;
    /** Marker size accessor in marker-local `[width, height]` units. */
    getMarkerSize?: Accessor<DataT, [number, number]>;
    /** Optional point used by callers to identify a highlighted dependency location. */
    highlightPoint?: Position | Vector3 | null;
    /** Optional source datum index used with `highlightPoint`. */
    highlightIndex?: number;
    /** Marker size multiplier. @defaultValue 10 */
    markerSizeScale?: number;
};
/** Renders paths, lines, or arcs with directional dependency markers. */
export declare class DependencyArrowLayer<DataT = any, ExtraPropsT = Record<string, unknown>> extends CompositeLayer<ExtraPropsT & Required<_DependencyArrowLayerProps<DataT>>> {
    static layerName: string;
    static defaultProps: DefaultProps<_DependencyArrowLayerProps<unknown>>;
    state: {
        markers: PathMarker<DataT>[];
    };
    updateState({ props, oldProps, changeFlags }: UpdateParameters<this>): void;
    getPickingInfo({ info }: GetPickingInfoParams): {
        color: Uint8Array | null;
        layer: Layer | null;
        sourceLayer?: Layer | null;
        viewport?: import("@deck.gl/core").Viewport;
        index: number;
        picked: boolean;
        object?: any;
        x: number;
        y: number;
        pixel?: [number, number];
        coordinate?: number[];
        devicePixel?: [number, number];
        pixelRatio: number;
    };
    renderLayers(): (Layer<{}> | GeometryLayer<PathMarker<DataT>>)[];
}
//# sourceMappingURL=dependency-arrow-layer.d.ts.map