import { type IOutlineEffectDefinition, type IPulseEffectDefinition, type IViewportApi } from "@shapediver/viewer"; import { type ITreeNode } from "@shapediver/viewer.shared.node-tree"; import { type IMaterialAbstractData } from "@shapediver/viewer.shared.types"; export type IInteractionEffect = IMaterialAbstractData | IOutlineEffectDefinition | IPulseEffectDefinition; export declare const isMaterialData: (effect: IInteractionEffect) => effect is IMaterialAbstractData; export declare const isPulseEffect: (effect: IInteractionEffect) => effect is IPulseEffectDefinition; export interface IInteractionEffectUtils { viewport?: IViewportApi; /** * Apply an effect material all geometry in the current node. * The material provided will be used for this effect. * The returned token can be used to removed the effect. * * @param node * @param effect * @returns */ applyInteractionEffect(node: ITreeNode, effect: IInteractionEffect): string; /** * Remove an effect material with the token provided wen adding it. * * @param node * @param token */ removeInteractionEffect(node: ITreeNode, token: string): void; } //# sourceMappingURL=IInteractionEffectUtils.d.ts.map