///
import * as THREE from 'three';
import { CanvasContext } from './canvas';
export declare type GlobalRenderCallback = (timeStamp: number) => boolean;
export interface ObjectHash {
[name: string]: object;
}
export declare const addEffect: (callback: GlobalRenderCallback) => () => void;
export declare const addTail: (callback: GlobalRenderCallback) => () => void;
export declare function renderGl(state: React.MutableRefObject, timestamp: number, repeat?: number, runGlobalEffects?: boolean): number;
export declare function invalidate(state?: React.MutableRefObject | boolean, frames?: number): void;
export declare const extend: (objects: object) => void;
export declare function applyProps(instance: any, newProps: any, oldProps?: any, accumulative?: boolean): void;
declare const Renderer: any;
export declare function render(element: React.ReactNode, container: THREE.Object3D, state?: React.MutableRefObject): any;
export declare function unmountComponentAtNode(container: THREE.Object3D): void;
export declare function createPortal(children: React.ReactNode, containerInfo: any, implementation?: any, key?: any): {
$$typeof: number | symbol;
key: string | null;
children: import("react").ReactNode;
containerInfo: any;
implementation: any;
};
export { Renderer };