import type { PMaterialBase } from './material';
/**
 * 着色器上下文
 */
export interface PShaderContext {
    /**
     * 材质
     */
    material: PMaterialBase;
    /**
     * 是否 WebGL2
     */
    isWebGL2: boolean;
    /**
     * 特性列表
     */
    featureList: string[];
}
/**
 * 着色器返回的代码结果
 */
export interface PShaderResults {
    /**
     * 顶点着色器代码
     */
    vertexShaderCode: string;
    /**
     * 片段着色器代码
     */
    fragmentShaderCode: string;
}
/**
 * 着色器管理类
 */
export declare class PShaderManager {
    private funcMap;
    private static _instance;
    /**
     * 获取着色器单例对象
     * @returns
     */
    static getInstance(): PShaderManager;
    private constructor();
    /**
     * 生成着色器代码
     * @param context - 着色器上下文
     * @returns
     */
    genShaderCode(context: PShaderContext): PShaderResults;
}
