import { ApiNode } from "./apiNode"; import { Interval } from "./scale/interval"; import { Position } from "./styles"; export interface ComputePositionArguments { node: ApiNode; initial: Position; i: number; } export type ComputePosition = (args: ComputePositionArguments) => Position; export type ComputeValues = () => T[]; export type ComputeChannelValues = (key: K) => V[]; export declare class Channel { private computeValues; constructor(computeValues: ComputeValues); get domain(): Interval; get values(): T[]; } export type DynamicChannels = Record>; /** * Lazy channels are properties of a LayoutContext which are computed on demand. * Layouts can optionally use these to fetch initial positions or values of properties. */ export declare function lazyChannels(values: ComputeChannelValues): DynamicChannels;