import type { MaterialDefines, MaterialDefineValue, MaterialIncludes, PreprocessedMaterialFragment } from './material-contracts.js';
export type { MaterialLineMap, MaterialSourceLocation, PreprocessedMaterialFragment } from './material-contracts.js';
/**
 * Validates and normalizes define entries.
 */
export declare function normalizeDefines<TDefineKey extends string>(defines: MaterialDefines<TDefineKey> | undefined): MaterialDefines<TDefineKey>;
/**
 * Validates include map identifiers and source chunks.
 */
export declare function normalizeIncludes<TIncludeKey extends string>(includes: MaterialIncludes<TIncludeKey> | undefined): MaterialIncludes<TIncludeKey>;
/**
 * Converts one define declaration to WGSL `const`.
 */
export declare function toDefineLine(key: string, value: MaterialDefineValue): string;
/**
 * Preprocesses material fragment with deterministic define/include expansion and line mapping.
 */
export declare function preprocessMaterialFragment<TDefineKey extends string, TIncludeKey extends string>(input: {
    fragment: string;
    defines?: MaterialDefines<TDefineKey>;
    includes?: MaterialIncludes<TIncludeKey>;
}): PreprocessedMaterialFragment;
//# sourceMappingURL=material-preprocess.d.ts.map