import { default as React } from 'react';
import { GpuShaderDefinition, BlendMode, PropDriver, TransformConfig, BoundingBoxConfig, LayoutConfig } from '../../core';
/**
* ``
*
* Mounts a user-defined shader (a `defineShader` result from `shaders/std`) as a node in the
* shader tree — the same registration, uniform bridge, metadata and child slot the generated
* library components use, with the definition supplied at runtime instead of imported at
* build time. Shader props are typed from the definition (`src={Halo}` → `radius`, `inner`, …).
*
* Swapping `src` for a new definition object re-registers the node in place (children stay
* attached); the definition's `revision` makes the renderer recompose.
*/
export interface CustomShaderLayerProps {
children?: React.ReactNode;
blendMode?: BlendMode;
opacity?: number;
visible?: boolean;
id?: string;
maskSource?: string;
maskType?: string;
renderOrder?: number;
transform?: Partial;
boundingBox?: Partial;
flow?: LayoutConfig;
absolute?: boolean;
}
export type CustomShaderProps> = CustomShaderLayerProps & {
/** The shader definition (`defineShader({...})`). */
src: GpuShaderDefinition;
} & {
[K in keyof T]?: T[K] | PropDriver;
};
export declare function CustomShader = Record>(props: CustomShaderProps): React.ReactElement;
export default CustomShader;
//# sourceMappingURL=CustomShader.d.ts.map