import type { RenderItem } from "./ForwardPass";
import { type ReflectionProbe } from "./ReflectionProbe";
export type ReflectionSurfaceKind = "planar-reflector" | "reflective-floor" | "refractor-glass" | "water-refraction" | "cube-probe" | "screen-space-reflection";
export type ReflectionSurfaceSupportStatus = "helper" | "unsupported";
export interface ReflectionSurfaceOptions {
    readonly id: string;
    readonly kind: ReflectionSurfaceKind;
    readonly size?: readonly [number, number];
    readonly y?: number;
    readonly roughness?: number;
    readonly metallic?: number;
    readonly intensity?: number;
    readonly probe?: ReflectionProbe;
}
export interface ReflectionSurfaceReport {
    readonly id: string;
    readonly kind: ReflectionSurfaceKind;
    readonly status: ReflectionSurfaceSupportStatus;
    readonly helper: string;
    readonly trueReflection: boolean;
    readonly requiresRendererPath: readonly string[];
    readonly unsupportedRequests: readonly string[];
    readonly claimBoundary: string;
}
export interface ReflectionSurface {
    readonly id: string;
    readonly kind: ReflectionSurfaceKind;
    readonly item?: RenderItem;
    readonly probe?: ReflectionProbe;
    readonly report: ReflectionSurfaceReport;
}
export declare function createReflectionSurface(options: ReflectionSurfaceOptions): ReflectionSurface;
export declare function createReflectiveFloorSurface(id: string, options?: Omit<ReflectionSurfaceOptions, "id" | "kind">): ReflectionSurface;
export declare function listReflectionSurfaceKinds(): readonly ReflectionSurfaceKind[];
//# sourceMappingURL=ReflectionSurfaces.d.ts.map