export class AbstractRenderAdapter {
    /**
     *
     * @type {number}
     * @protected
     */
    protected __object_count: number;
    /**
     *
     * @type {THREE.Object3D[]}
     * @protected
     */
    protected __objects: THREE.Object3D[];
    /**
     * Sorting objects by material will help reduce context switching and number of graphics API calls
     */
    sort_by_material(): void;
    /**
     *
     * @param {THREE.BufferGeometry} geometry
     * @param {THREE.Material} material
     * @param {number} instance_count
     * @returns {number}
     */
    score(geometry: THREE.BufferGeometry, material: THREE.Material, instance_count: number): number;
    /**
     * Express intent to draw
     * @param {ShadedGeometry} sg
     * @returns {boolean} true if able to draw immediately, false otherwise
     */
    intend_draw(sg: ShadedGeometry): boolean;
    /**
     *
     * @param {ShadedGeometry} sg
     * @returns {void}
     */
    add(sg: ShadedGeometry): void;
    /**
     *
     * @param {THREE.WebGLRenderer} renderer
     * @param {CameraView} view
     */
    build_start(renderer: THREE.WebGLRenderer, view: CameraView): void;
    build_end(): void;
    clear(): void;
    /**
     * Used to perform infrequent housekeeping on the adapter's internal data structures
     * Returns a maintenance sequence
     * @return {Generator}
     */
    maintain(): Generator;
    /**
     * @returns {THREE.Object3D[]}
     */
    get objects(): THREE.Object3D[];
    /**
     * @returns {number}
     */
    get object_count(): number;
    dispose(): void;
    /**
     * @readonly
     * @type {boolean}
     */
    readonly isShadedGeometryRenderAdapter: boolean;
}
//# sourceMappingURL=AbstractRenderAdapter.d.ts.map