import type { DataPoint } from "@d3plus/data";
import { D3plusConfig } from "./D3plusConfig";
interface D3PlusWrapped {
    __d3plus__?: boolean;
    __d3plusParent__?: D3PlusWrapped;
    data?: DataPoint;
    feature?: DataPoint;
    i?: number;
    [key: string]: unknown;
}
type DataAccessor = (d: DataPoint, i: number, s?: D3PlusWrapped, e?: Event) => DataPoint[keyof DataPoint];
interface ConfigObject extends D3plusConfig {
    [key: string]: unknown;
}
export interface VizContext {
    _shapeConfig: ConfigObject;
    _duration: number;
    _on: Record<string, DataAccessor>;
    [key: string]: unknown;
}
/**
    Preps a config object for d3plus data, and optionally bubbles up a specific nested type. When using this function, you must bind a d3plus class' `this` context.
    @param config The configuration object to parse.
    @param type The event classifier to user for "on" events. For example, the default event type of "shape" will apply all events in the "on" config object with that key, like "click.shape" and "mouseleave.shape", in addition to any gloval events like "click" and "mouseleave".
    @param nest An optional nested key to bubble up to the parent config level.
*/
export default function configPrep(this: VizContext, config?: ConfigObject, type?: string, nest?: string | false): ConfigObject;
export {};
