import { type DynamicEffects, DynamicShaderController } from '../../../main-api/DynamicShaderController.js';
import type { ShaderController } from '../../../main-api/ShaderController.js';
import { CoreShaderManager, type ShaderMap } from '../../CoreShaderManager.js';
import type { ExtractProps } from '../../CoreTextureManager.js';
import { type DynamicShaderProps } from './shaders/DynamicShader.js';
import type { WebGlCoreRenderer } from './WebGlCoreRenderer.js';
export interface DynamicShaderEffectMap {
}
export declare class WebGlCoreShaderManager extends CoreShaderManager {
    protected effectConstructors: Partial<DynamicShaderEffectMap>;
    constructor(renderer: WebGlCoreRenderer);
    registerEffectType<Type extends keyof DynamicShaderEffectMap>(effectType: Type, effectClass: DynamicShaderEffectMap[Type]): void;
    getRegisteredEffects(): Partial<DynamicShaderEffectMap>;
    loadShader<Type extends keyof ShaderMap>(shType: Type, props?: ExtractProps<ShaderMap[Type]>): ShaderController<Type>;
    loadDynamicShader<T extends DynamicEffects<[
        ...{
            name?: string;
            type: keyof DynamicShaderEffectMap;
        }[]
    ]>>(props: DynamicShaderProps): DynamicShaderController<T>;
    protected _createDynShaderCtr<T extends DynamicEffects<[
        ...{
            name?: string;
            type: keyof DynamicShaderEffectMap;
        }[]
    ]>>(shader: InstanceType<ShaderMap['DynamicShader']>, props: ExtractProps<ShaderMap['DynamicShader']>): DynamicShaderController<T>;
}
