import { Dictionary } from "../common"; import * as Specification from "../specification"; import { Platform } from "../platform"; import { Binding, ShiftBinding, BindingValue, BindingPrimitive } from "../binding/binding"; import { ScaleBinding } from "../scale/scale"; export declare type MarkBinding = Binding | ScaleBinding; export interface InstanceFunctions { datum: (datum: any, index: number, data: any[]) => any[]; attrs: (datum: any, index: number, data: any[]) => { [name: string]: BindingPrimitive; }; } export declare class Mark { private _spec; private _shader; private _platform; private _bindings; private _shiftBindings; private _data; private _instanceFunctions; private _platformMark; private _platformMarkData; private _shouldUploadData; constructor(spec: Specification.Mark, shader: Specification.Shader, platform: Platform); readonly spec: Specification.Mark; readonly shader: Specification.Shader; attr(name: string): BindingValue | ScaleBinding; attr(name: string, value: BindingValue | ScaleBinding): Mark; data(): any[]; data(data: any[]): Mark; instance(datum?: (datum: any, index: number, data: any[]) => any[], attrs?: (datum: any, index: number, data: any[]) => { [name: string]: BindingPrimitive; }): Mark | InstanceFunctions; prepareSpecification(): [Specification.Mark, Dictionary, Dictionary]; uploadScaleUniforms(): void; prepare(): Mark; render(): Mark; }