import type { TextConfiguration } from '../text-runtime/index.cjs'; import type { ThreeBlocksShaderSceneBuildConfig, ThreeBlocksShaderState, ThreeBlocksTextState } from './types.cjs'; export interface ThreeBlocksShaderInspection { readonly state: ThreeBlocksShaderState; readonly pipelines: number; readonly changed: readonly string[]; readonly reason: string; readonly scenes?: Readonly>; } export interface ThreeBlocksTextInspection { readonly state: Exclude; readonly atlases: number; readonly glyphs: number; readonly missing: readonly number[]; readonly reason: string; } export interface ThreeBlocksAssetInspection { readonly state: 'empty' | 'fresh' | 'stale' | 'invalid'; /** Receipt entries whose input and output still match the recorded sizes. */ readonly optimized: number; /** Receipt entries whose files moved, changed size, or disappeared. */ readonly stale: number; /** Optimizable public assets (`.glb`/`.hdr`) with no receipt entry yet. */ readonly candidates: number; readonly candidateBytes: number; readonly bytesIn: number; readonly bytesOut: number; /** Exact GPU allocation totals recorded by the optimizer (per-mip block math). */ readonly vramBytesIn: number; readonly vramBytesOut: number; /** Fresh entries per source kind, so the overlay can name what was compressed. */ readonly kinds: Readonly>; readonly reason: string; } export interface ThreeBlocksProjectInspection { readonly shaders: ThreeBlocksShaderInspection; readonly text?: ThreeBlocksTextInspection; readonly assets: ThreeBlocksAssetInspection; } export interface InspectThreeBlocksProjectOptions { readonly threeVersion: string; readonly threeBlocksVersion?: string; /** Installed `three-blocks/shaders` ESM closure; populated internally by normal Vite inspection. */ readonly threeBlocksShaderClosure?: string; readonly text?: TextConfiguration; /** Absolute public directory for the asset-candidate scan; defaults to `/public`. */ readonly publicDir?: string; } export declare function inspectThreeBlocksProject(root: string, options: InspectThreeBlocksProjectOptions): Promise;