import type { LiveComponent } from '@use-gpu/live'; import type { ShaderModule } from '@use-gpu/shader'; import type { Lazy, TextureSource } from '@use-gpu/core'; import type { Update } from '@use-gpu/state'; import type { BoundLight } from '../../light/types.d.cts'; export type LightRenderProps = { lights: Map; order: number[]; subranges: Map; }; export type LightKindProps = { gBuffer: TextureSource[]; stencil: boolean; shadows: boolean; lights: Map; order: number[]; start: number; end: number; getSurface: ShaderModule; getLight: ShaderModule; applyLight: ShaderModule; }; export declare const FULLSCREEN_PIPELINE: Update; export declare const GEOMETRY_PIPELINE: Update; export declare const STENCIL_PIPELINE: Update; export declare const FULLSCREEN_STENCIL_PIPELINE: Update; export declare const GEOMETRY_STENCIL_PIPELINE: Update; export declare const FULLSCREEN_DEFS: { IS_FULLSCREEN: boolean; }; export declare const GEOMETRY_DEFS: { IS_FULLSCREEN: boolean; }; export declare const LightRender: LiveComponent; export declare const LightDraw: (vertexCount: Lazy, instanceCount: Lazy, firstInstance: Lazy, links: Record, pipeline?: Update, mode?: string) => import("@use-gpu/live").DeferredCall; export declare const useLightDraw: (vertexCount: Lazy, instanceCount: Lazy, firstInstance: Lazy, links: Record, pipeline?: Update, mode?: string) => (() => void) | { [x: string]: { draw: (passEncoder: GPURenderPassEncoder, countGeometry: (v: number, t: number) => void, uniforms: Record>, flip?: boolean) => void; bounds: Lazy | null | undefined; }; draw?: undefined; bounds?: undefined; } | { draw: (passEncoder: GPURenderPassEncoder, countGeometry: (v: number, t: number) => void, uniforms: Record>, flip?: boolean) => void; bounds: Lazy | null | undefined; } | null;