import { Tree } from '@lezer/common'; import { ShaderModule, ParsedBundle, ParsedModule, ParsedModuleCache, ShaderDefine } from '../types.d.mts'; export type Linker = (source: ParsedBundle, libraries?: Record) => string; export type LoadModuleWithCache = (code: string, name: string, entry?: string, cache?: ParsedModuleCache | null) => ParsedModule; export type GetPreambles = () => string[]; export type GetRenames = (defines?: Record | null) => Map; export type DefineConstants = (defines: Record) => string; export type DefineEnables = (enabled: string[]) => string; export type RewriteUsingAST = (code: string, tree: Tree, rename: Map, shake?: number[] | null, optionals?: Set | null) => string; export type IsGlobalType = (s: string) => boolean; export declare const makeLinkCode: (linker: Linker, loadModuleWithCache: LoadModuleWithCache, defaultCache: ParsedModuleCache) => (code: string, libraries?: Record, links?: Record | null, defines?: Record | null, cache?: ParsedModuleCache | null) => string; export declare const makeLinkBundle: (linker: Linker) => (source: ShaderModule, links?: Record, defines?: Record | null) => string; export declare const makeLinkModule: (linker: Linker) => (source: ParsedModule, libraries?: Record, links?: Record, defines?: Record | null) => string; export declare const makeLinker: (getPreambles: GetPreambles, getRenames: GetRenames, defineConstants: DefineConstants, defineEnables: DefineEnables, rewriteUsingAST: RewriteUsingAST, isGlobalType?: IsGlobalType) => (source: ShaderModule, libraries?: Record) => string; export declare const loadBundlesInOrder: (bundle: ParsedBundle, libraries?: Record) => { bundles: ParsedBundle[]; exported: Map>; imported: Map>; aliased: Map>; }; export declare const getGraphOrder: (graph: Map, key: number, hoist?: Set) => number[]; export declare const parseLinkAliases: (links?: Record) => [Record, Map | null];