import _REGL = require('regl'); export declare type REGL = _REGL.Regl; declare function _moduleLoader(_: (regl: _REGL.Regl, requireREGL: REGLLoader) => ModType): ModType; export interface REGLProfileData { count: number; cpuTime: number; gpuTime: number; } export interface REGLLoader { regl: _REGL.Regl; require: typeof _moduleLoader; cache: (name: string, commandSpec: _REGL.DrawConfig, profile: boolean, flags?: { [symbol: string]: (state: StateType) => boolean | number; }) => (state: StateType) => (prop?: PropType, ...rest: any[]) => void; stats: () => { [name: string]: REGLProfileData; }; floatBuffer: { type: 'uint8' | 'half float' | 'float'; filter: 'nearest' | 'linear'; }; preloadShaders: (state: PropType) => void; } export declare class CachedREGLCommand { flagFunc: ((state: any) => number | boolean)[]; flags: number[]; cmd: any; constructor(flagFunc: ((state: any) => number | boolean)[], flags: number[], cmd: any); test(state: any): boolean; } export declare function createREGLCache(regl: any, profile: boolean): REGLLoader; export declare function safeProp(regl: _REGL.Regl): ((key: K) => ((key: K_1) => ((key: K_2) => ((key: K_3) => ((key: K_4) => ((key: K_5) => ((key: K_6) => ((key: K_7) => ((key: K_8) => ((key: K_9) => ((key: K_10) => any & { prop: _REGL.DynamicVariable; }) & { prop: _REGL.DynamicVariable; }) & { prop: _REGL.DynamicVariable; }) & { prop: _REGL.DynamicVariable; }) & { prop: _REGL.DynamicVariable; }) & { prop: _REGL.DynamicVariable; }) & { prop: _REGL.DynamicVariable; }) & { prop: _REGL.DynamicVariable; }) & { prop: _REGL.DynamicVariable; }) & { prop: _REGL.DynamicVariable; }) & { prop: _REGL.DynamicVariable; }) & { prop: _REGL.DynamicVariable; }; export {};