import * as Specification from "../specification"; import { MathType } from "../common"; import { TextureBinding } from "./array"; export declare type BindingPrimitive = Specification.Value | MathType; export declare type BindingFunction = (data?: any, index?: number) => BindingPrimitive; export declare type BindingValue = BindingPrimitive | BindingFunction | TextureBinding; export declare enum BindingType { VALUE = 0, FUNCTION = 1, TEXTURE = 2 } export declare class ShiftBinding { name: string; offset: number; constructor(name: string, offset: number); } export declare function getBindingValue(value: BindingPrimitive): Specification.Value; /** Type */ export interface Type { name: string; size: number; primitive: string; primitiveCount: number; } export declare let types: { [name: string]: Type; };