import { PureContainerBase, PureContainerConfig } from "../../ui/PureContainer"; import { Instance } from "../../ui/Instance"; import { RenderingContext } from "../../ui/RenderingContext"; import { DataRecord, StructuredProp } from "../../ui/Prop"; export type PointReducerFunction = (x: any, y: any, name: string, data: any, array?: any[], index?: number) => void; export interface PointReducerAccumulator { [key: string]: any; } export interface PointReducerInstance extends Instance { resetAccumulator: () => void; pointFilter?: (x: any, y: any, name: string, data: any, array?: any[], index?: number) => boolean; accumulator?: TAccumulator; parentPointTracker?: PointReducerFunction; pointReducer?: PointReducerFunction; write?: () => void; } export interface PointReducerConfig extends PureContainerConfig { /** A callback function used to initialize the accumulator. */ onInitAccumulator?: string | ((accumulator: DataRecord, instance: Instance) => void); /** A callback function used to collect information about all data points. */ onMap?: string | ((accumulator: DataRecord, x?: any, y?: any, name?: string, data?: any, array?: any[], index?: number) => void); /** A callback function used to process accumulated information and write results. */ onReduce?: string | ((accumulator: DataRecord, instance: Instance) => void); /** Parameters that trigger filter predicate re-creation. */ filterParams?: StructuredProp; /** A callback function used to create a predicate for filtering points. */ onCreatePointFilter?: string | ((filterParams: any, instance: Instance) => (x: number, y: number, name: string, data: any, array?: any[], index?: number) => boolean); } export declare class PointReducer extends PureContainerBase> { onCreatePointFilter?: PointReducerConfig["onCreatePointFilter"]; onInitAccumulator?: (acc: TAccumulator, instance: PointReducerInstance) => void; onMap?: (acc: TAccumulator, x: any, y: any, name: string, data?: any, array?: any[], index?: number) => void; onReduce?: (acc: TAccumulator, instance: PointReducerInstance) => void; constructor(config?: PointReducerConfig); declareData(...args: any[]): void; prepareData(context: RenderingContext, instance: PointReducerInstance): void; explore(context: RenderingContext, instance: PointReducerInstance): void; exploreCleanup(context: RenderingContext, instance: PointReducerInstance): void; prepare(context: RenderingContext, instance: PointReducerInstance): void; prepareCleanup(context: RenderingContext, instance: PointReducerInstance): void; } //# sourceMappingURL=PointReducer.d.ts.map