babylonjs-node-editor
Version:
Node Editor
1,095 lines (936 loc) • 202 kB
TypeScript
declare module BABYLON.NodeEditor {
export class SerializationTools {
static UpdateLocations(material: BABYLON.NodeMaterial, globalState: GlobalState, frame?: BABYLON.Nullable<BABYLON.NodeEditor.SharedUIComponents.GraphFrame>): void;
static Serialize(material: BABYLON.NodeMaterial, globalState: GlobalState, frame?: BABYLON.Nullable<BABYLON.NodeEditor.SharedUIComponents.GraphFrame>): string;
static Deserialize(serializationObject: any, globalState: GlobalState): void;
static AddFrameToMaterial(serializationObject: any, globalState: GlobalState, currentMaterial: BABYLON.NodeMaterial): void;
}
interface IPortalProps {
globalState: GlobalState;
}
export class Portal extends React.Component<React.PropsWithChildren<IPortalProps>> {
render(): React.ReactPortal;
}
/**
* Interface used to specify creation options for the node editor
*/
export interface INodeEditorOptions {
nodeMaterial: BABYLON.NodeMaterial;
hostElement?: HTMLElement;
customSave?: {
label: string;
action: (data: string) => Promise<void>;
};
customLoadObservable?: BABYLON.Observable<any>;
backgroundColor?: BABYLON.Color4;
}
/**
* Class used to create a node editor
*/
export class NodeEditor {
private static _CurrentState;
private static _PopupWindow;
/**
* Show the node editor
* @param options defines the options to use to configure the node editor
*/
static Show(options: INodeEditorOptions): void;
}
interface IGraphEditorProps {
globalState: GlobalState;
}
interface IGraphEditorState {
showPreviewPopUp: boolean;
message: string;
isError: boolean;
}
interface IInternalPreviewAreaOptions extends BABYLON.IInspectorOptions {
popup: boolean;
original: boolean;
explorerWidth?: string;
inspectorWidth?: string;
embedHostWidth?: string;
}
export class GraphEditor extends React.Component<IGraphEditorProps, IGraphEditorState> {
private _graphCanvasRef;
private _diagramContainerRef;
private _graphCanvas;
private _historyStack;
private _previewManager;
private _mouseLocationX;
private _mouseLocationY;
private _onWidgetKeyUpPointer;
private _previewHost;
private _popUpWindow;
appendBlock(dataToAppend: BABYLON.NodeMaterialBlock | BABYLON.NodeEditor.SharedUIComponents.INodeData, recursion?: boolean): BABYLON.NodeEditor.SharedUIComponents.GraphNode;
addValueNode(type: string): BABYLON.NodeEditor.SharedUIComponents.GraphNode;
prepareHistoryStack(): void;
componentDidMount(): void;
componentWillUnmount(): void;
constructor(props: IGraphEditorProps);
zoomToFit(): void;
buildMaterial(): void;
build(ignoreEditorData?: boolean): void;
loadGraph(): void;
showWaitScreen(): void;
hideWaitScreen(): void;
reOrganize(editorData?: BABYLON.Nullable<BABYLON.NodeEditor.SharedUIComponents.IEditorData>, isImportingAFrame?: boolean): void;
onWheel: (evt: WheelEvent) => void;
emitNewBlock(blockType: string, targetX: number, targetY: number): BABYLON.NodeEditor.SharedUIComponents.GraphNode | undefined;
dropNewBlock(event: React.DragEvent<HTMLDivElement>): void;
handlePopUp: () => void;
handleClosingPopUp: () => void;
initiatePreviewArea: (canvas?: HTMLCanvasElement) => void;
createPopUp: () => void;
createPreviewMeshControlHostAsync: (options: IInternalPreviewAreaOptions, parentControl: BABYLON.Nullable<HTMLElement>) => Promise<unknown>;
createPreviewHostAsync: (options: IInternalPreviewAreaOptions, parentControl: BABYLON.Nullable<HTMLElement>) => Promise<unknown>;
fixPopUpStyles: (document: Document) => void;
render(): import("react/jsx-runtime").JSX.Element;
}
export class GlobalState {
hostElement: HTMLElement;
hostDocument: Document;
hostWindow: Window;
stateManager: BABYLON.NodeEditor.SharedUIComponents.StateManager;
onBuiltObservable: BABYLON.Observable<void>;
onResetRequiredObservable: BABYLON.Observable<boolean>;
onClearUndoStack: BABYLON.Observable<void>;
onZoomToFitRequiredObservable: BABYLON.Observable<void>;
onReOrganizedRequiredObservable: BABYLON.Observable<void>;
onLogRequiredObservable: BABYLON.Observable<LogEntry>;
onIsLoadingChanged: BABYLON.Observable<boolean>;
onLightUpdated: BABYLON.Observable<void>;
onBackgroundHDRUpdated: BABYLON.Observable<void>;
onPreviewBackgroundChanged: BABYLON.Observable<void>;
onBackFaceCullingChanged: BABYLON.Observable<void>;
onDepthPrePassChanged: BABYLON.Observable<void>;
onAnimationCommandActivated: BABYLON.Observable<void>;
onImportFrameObservable: BABYLON.Observable<any>;
onPopupClosedObservable: BABYLON.Observable<void>;
onDropEventReceivedObservable: BABYLON.Observable<DragEvent>;
onGetNodeFromBlock: (block: BABYLON.NodeMaterialBlock) => BABYLON.NodeEditor.SharedUIComponents.GraphNode;
previewType: PreviewType;
previewFile: File;
envType: PreviewType;
envFile: File;
particleSystemBlendMode: number;
listOfCustomPreviewFiles: File[];
rotatePreview: boolean;
backgroundColor: BABYLON.Color4;
backFaceCulling: boolean;
depthPrePass: boolean;
lockObject: BABYLON.NodeEditor.SharedUIComponents.LockObject;
hemisphericLight: boolean;
directionalLight0: boolean;
directionalLight1: boolean;
backgroundHDR: boolean;
controlCamera: boolean;
_mode: BABYLON.NodeMaterialModes;
_engine: number;
pointerOverCanvas: boolean;
filesInput: BABYLON.FilesInput;
onRefreshPreviewMeshControlComponentRequiredObservable: BABYLON.Observable<void>;
previewTexture: BABYLON.Nullable<BABYLON.RenderTargetTexture>;
pickingTexture: BABYLON.Nullable<BABYLON.RenderTargetTexture>;
onPreviewSceneAfterRenderObservable: BABYLON.Observable<void>;
onPreviewUpdatedObservable: BABYLON.Observable<BABYLON.NodeMaterial>;
debugBlocksToRefresh: BABYLON.NodeMaterialDebugBlock[];
forcedDebugBlock: BABYLON.Nullable<BABYLON.NodeMaterialDebugBlock>;
/** Gets the mode */
get mode(): BABYLON.NodeMaterialModes;
/** Sets the mode */
set mode(m: BABYLON.NodeMaterialModes);
/** Gets the engine */
get engine(): number;
/** Sets the engine */
set engine(e: number);
private _nodeMaterial;
/**
* Gets the current node material
*/
get nodeMaterial(): BABYLON.NodeMaterial;
/**
* Sets the current node material
*/
set nodeMaterial(nodeMaterial: BABYLON.NodeMaterial);
customSave?: {
label: string;
action: (data: string) => Promise<void>;
};
constructor();
storeEditorData(serializationObject: any, frame?: BABYLON.Nullable<BABYLON.NodeEditor.SharedUIComponents.GraphFrame>): void;
}
export class BlockTools {
static GetBlockFromString(data: string, scene: BABYLON.Scene, nodeMaterial: BABYLON.NodeMaterial): BABYLON.AmbientOcclusionBlock | BABYLON.NodeMaterialDebugBlock | BABYLON.MatrixSplitterBlock | BABYLON.StorageWriteBlock | BABYLON.StorageReadBlock | BABYLON.LoopBlock | BABYLON.ColorConverterBlock | BABYLON.NodeMaterialTeleportInBlock | BABYLON.NodeMaterialTeleportOutBlock | BABYLON.HeightToNormalBlock | BABYLON.ElbowBlock | BABYLON.TwirlBlock | BABYLON.VoronoiNoiseBlock | BABYLON.ScreenSpaceBlock | BABYLON.CloudBlock | BABYLON.MatrixBuilderBlock | BABYLON.DesaturateBlock | BABYLON.RefractBlock | BABYLON.ReflectBlock | BABYLON.DerivativeBlock | BABYLON.Rotate2dBlock | BABYLON.NormalBlendBlock | BABYLON.WorleyNoise3DBlock | BABYLON.SimplexPerlin3DBlock | BABYLON.BonesBlock | BABYLON.InstancesBlock | BABYLON.MorphTargetsBlock | BABYLON.DiscardBlock | BABYLON.PrePassTextureBlock | BABYLON.ImageProcessingBlock | BABYLON.ColorMergerBlock | BABYLON.VectorMergerBlock | BABYLON.ColorSplitterBlock | BABYLON.VectorSplitterBlock | BABYLON.TextureBlock | BABYLON.ReflectionTextureBlock | BABYLON.LightBlock | BABYLON.FogBlock | BABYLON.VertexOutputBlock | BABYLON.FragmentOutputBlock | BABYLON.PrePassOutputBlock | BABYLON.AddBlock | BABYLON.ClampBlock | BABYLON.ScaleBlock | BABYLON.CrossBlock | BABYLON.DotBlock | BABYLON.PowBlock | BABYLON.MultiplyBlock | BABYLON.TransformBlock | BABYLON.TrigonometryBlock | BABYLON.RemapBlock | BABYLON.NormalizeBlock | BABYLON.FresnelBlock | BABYLON.LerpBlock | BABYLON.NLerpBlock | BABYLON.DivideBlock | BABYLON.SubtractBlock | BABYLON.ModBlock | BABYLON.StepBlock | BABYLON.SmoothStepBlock | BABYLON.OneMinusBlock | BABYLON.ReciprocalBlock | BABYLON.ViewDirectionBlock | BABYLON.LightInformationBlock | BABYLON.MaxBlock | BABYLON.MinBlock | BABYLON.LengthBlock | BABYLON.DistanceBlock | BABYLON.NegateBlock | BABYLON.PerturbNormalBlock | BABYLON.TBNBlock | BABYLON.RandomNumberBlock | BABYLON.ReplaceColorBlock | BABYLON.PosterizeBlock | BABYLON.ArcTan2Block | BABYLON.GradientBlock | BABYLON.FrontFacingBlock | BABYLON.MeshAttributeExistsBlock | BABYLON.WaveBlock | BABYLON.InputBlock | BABYLON.PBRMetallicRoughnessBlock | BABYLON.SheenBlock | BABYLON.AnisotropyBlock | BABYLON.ReflectionBlock | BABYLON.ClearCoatBlock | BABYLON.RefractionBlock | BABYLON.SubSurfaceBlock | BABYLON.IridescenceBlock | BABYLON.CurrentScreenBlock | BABYLON.ParticleTextureBlock | BABYLON.ParticleRampGradientBlock | BABYLON.ParticleBlendMultiplyBlock | BABYLON.FragCoordBlock | BABYLON.ScreenSizeBlock | BABYLON.SceneDepthBlock | BABYLON.ConditionalBlock | BABYLON.ImageSourceBlock | BABYLON.ClipPlanesBlock | BABYLON.FragDepthBlock | BABYLON.ShadowMapBlock | BABYLON.TriPlanarBlock | BABYLON.MatrixTransposeBlock | BABYLON.MatrixDeterminantBlock | BABYLON.CurveBlock | BABYLON.GaussianSplattingBlock | BABYLON.GaussianBlock | BABYLON.SplatReaderBlock | null;
static GetColorFromConnectionNodeType(type: BABYLON.NodeMaterialBlockConnectionPointTypes): string;
static GetConnectionNodeTypeFromString(type: string): BABYLON.NodeMaterialBlockConnectionPointTypes.Float | BABYLON.NodeMaterialBlockConnectionPointTypes.Vector2 | BABYLON.NodeMaterialBlockConnectionPointTypes.Vector3 | BABYLON.NodeMaterialBlockConnectionPointTypes.Vector4 | BABYLON.NodeMaterialBlockConnectionPointTypes.Color3 | BABYLON.NodeMaterialBlockConnectionPointTypes.Color4 | BABYLON.NodeMaterialBlockConnectionPointTypes.Matrix | BABYLON.NodeMaterialBlockConnectionPointTypes.AutoDetect;
static GetStringFromConnectionNodeType(type: BABYLON.NodeMaterialBlockConnectionPointTypes): "" | "Float" | "Vector2" | "Vector3" | "Vector4" | "Matrix" | "Color3" | "Color4";
}
interface ITextureLineComponentProps {
texture: BABYLON.BaseTexture;
width: number;
height: number;
globalState?: any;
hideChannelSelect?: boolean;
}
export interface ITextureLineComponentState {
displayRed: boolean;
displayGreen: boolean;
displayBlue: boolean;
displayAlpha: boolean;
face: number;
}
export class TextureLineComponent extends React.Component<ITextureLineComponentProps, ITextureLineComponentState> {
private _canvasRef;
constructor(props: ITextureLineComponentProps);
shouldComponentUpdate(): boolean;
componentDidMount(): void;
componentDidUpdate(): void;
updatePreview(): void;
static UpdatePreview(previewCanvas: HTMLCanvasElement, texture: BABYLON.BaseTexture, width: number, options: ITextureLineComponentState, onReady?: () => void, globalState?: any): Promise<void>;
render(): import("react/jsx-runtime").JSX.Element;
}
export interface ICheckBoxLineComponentProps {
label: string;
target?: any;
propertyName?: string;
isSelected?: () => boolean;
onSelect?: (value: boolean) => void;
onValueChanged?: () => void;
onPropertyChangedObservable?: BABYLON.Observable<BABYLON.NodeEditor.SharedUIComponents.PropertyChangedEvent>;
disabled?: boolean;
}
export class CheckBoxLineComponent extends React.Component<ICheckBoxLineComponentProps, {
isSelected: boolean;
isDisabled?: boolean;
}> {
private static _UniqueIdSeed;
private _uniqueId;
private _localChange;
constructor(props: ICheckBoxLineComponentProps);
shouldComponentUpdate(nextProps: ICheckBoxLineComponentProps, nextState: {
isSelected: boolean;
isDisabled: boolean;
}): boolean;
onChange(): void;
renderFluent(): import("react/jsx-runtime").JSX.Element;
renderOriginal(): import("react/jsx-runtime").JSX.Element;
render(): import("react/jsx-runtime").JSX.Element;
}
export const RegisterTypeLedger: () => void;
export const RegisterToPropertyTabManagers: () => void;
export const RegisterToDisplayManagers: () => void;
export const RegisterNodePortDesign: (stateManager: BABYLON.NodeEditor.SharedUIComponents.StateManager) => void;
export const RegisterExportData: (stateManager: BABYLON.NodeEditor.SharedUIComponents.StateManager) => void;
export const RegisterElbowSupport: (stateManager: BABYLON.NodeEditor.SharedUIComponents.StateManager) => void;
export const RegisterDefaultInput: (stateManager: BABYLON.NodeEditor.SharedUIComponents.StateManager) => void;
export const RegisterDebugSupport: (stateManager: BABYLON.NodeEditor.SharedUIComponents.StateManager) => void;
export class ConnectionPointPortData implements BABYLON.NodeEditor.SharedUIComponents.IPortData {
private _connectedPort;
private _nodeContainer;
data: BABYLON.NodeMaterialConnectionPoint;
get name(): string;
get internalName(): string;
get isExposedOnFrame(): boolean;
set isExposedOnFrame(value: boolean);
get exposedPortPosition(): number;
set exposedPortPosition(value: number);
get isConnected(): boolean;
get isInactive(): boolean;
get connectedPort(): BABYLON.Nullable<BABYLON.NodeEditor.SharedUIComponents.IPortData>;
set connectedPort(value: BABYLON.Nullable<BABYLON.NodeEditor.SharedUIComponents.IPortData>);
get direction(): BABYLON.NodeEditor.SharedUIComponents.PortDataDirection;
get ownerData(): BABYLON.NodeMaterialBlock;
get needDualDirectionValidation(): boolean;
get hasEndpoints(): boolean;
get endpoints(): BABYLON.NodeEditor.SharedUIComponents.IPortData[];
constructor(connectionPoint: BABYLON.NodeMaterialConnectionPoint, nodeContainer: BABYLON.NodeEditor.SharedUIComponents.INodeContainer);
updateDisplayName(newName: string): void;
connectTo(port: BABYLON.NodeEditor.SharedUIComponents.IPortData): void;
canConnectTo(port: BABYLON.NodeEditor.SharedUIComponents.IPortData): boolean;
disconnectFrom(port: BABYLON.NodeEditor.SharedUIComponents.IPortData): void;
checkCompatibilityState(port: BABYLON.NodeEditor.SharedUIComponents.IPortData): 0 | BABYLON.NodeMaterialConnectionPointCompatibilityStates.TypeIncompatible | BABYLON.NodeMaterialConnectionPointCompatibilityStates.TargetIncompatible | BABYLON.NodeMaterialConnectionPointCompatibilityStates.HierarchyIssue;
getCompatibilityIssueMessage(issue: number, targetNode: BABYLON.NodeEditor.SharedUIComponents.GraphNode, targetPort: BABYLON.NodeEditor.SharedUIComponents.IPortData): string;
}
export class BlockNodeData implements BABYLON.NodeEditor.SharedUIComponents.INodeData {
data: BABYLON.NodeMaterialBlock;
private _inputs;
private _outputs;
get uniqueId(): number;
get name(): string;
getClassName(): string;
get isInput(): boolean;
get inputs(): BABYLON.NodeEditor.SharedUIComponents.IPortData[];
get outputs(): BABYLON.NodeEditor.SharedUIComponents.IPortData[];
get comments(): string;
set comments(value: string);
get executionTime(): number;
getPortByName(name: string): BABYLON.NodeEditor.SharedUIComponents.IPortData | null;
dispose(): void;
prepareHeaderIcon(iconDiv: HTMLDivElement, img: HTMLImageElement): void;
get invisibleEndpoints(): BABYLON.NodeMaterialTeleportOutBlock[] | null;
constructor(data: BABYLON.NodeMaterialBlock, nodeContainer: BABYLON.NodeEditor.SharedUIComponents.INodeContainer);
get canBeActivated(): boolean;
get isActive(): any;
setIsActive(value: boolean): void;
}
export class VectorMergerPropertyTabComponent extends React.Component<BABYLON.NodeEditor.SharedUIComponents.IPropertyComponentProps> {
constructor(props: BABYLON.NodeEditor.SharedUIComponents.IPropertyComponentProps);
render(): import("react/jsx-runtime").JSX.Element;
}
type ReflectionTexture = BABYLON.ReflectionTextureBlock | BABYLON.ReflectionBlock | BABYLON.RefractionBlock;
type AnyTexture = BABYLON.TextureBlock | ReflectionTexture | BABYLON.CurrentScreenBlock | BABYLON.ParticleTextureBlock | BABYLON.TriPlanarBlock;
export class TexturePropertyTabComponent extends React.Component<BABYLON.NodeEditor.SharedUIComponents.IPropertyComponentProps, {
isEmbedded: boolean;
loadAsCubeTexture: boolean;
textureIsPrefiltered: boolean;
}> {
get textureBlock(): AnyTexture;
constructor(props: BABYLON.NodeEditor.SharedUIComponents.IPropertyComponentProps);
UNSAFE_componentWillUpdate(nextProps: BABYLON.NodeEditor.SharedUIComponents.IPropertyComponentProps, nextState: {
isEmbedded: boolean;
loadAsCubeTexture: boolean;
}): void;
private _generateRandomForCache;
updateAfterTextureLoad(): void;
removeTexture(): void;
_prepareTexture(): void;
/**
* Replaces the texture of the node
* @param file the file of the texture to use
*/
replaceTexture(file: File): void;
replaceTextureWithUrl(url: string): void;
render(): import("react/jsx-runtime").JSX.Element;
}
export class TeleportOutPropertyTabComponent extends React.Component<BABYLON.NodeEditor.SharedUIComponents.IPropertyComponentProps> {
private _onUpdateRequiredObserver;
constructor(props: BABYLON.NodeEditor.SharedUIComponents.IPropertyComponentProps);
componentDidMount(): void;
componentWillUnmount(): void;
render(): import("react/jsx-runtime").JSX.Element;
}
export interface IFrameNodePortPropertyTabComponentProps {
stateManager: BABYLON.NodeEditor.SharedUIComponents.StateManager;
nodePort: BABYLON.NodeEditor.SharedUIComponents.NodePort;
}
export class NodePortPropertyTabComponent extends React.Component<IFrameNodePortPropertyTabComponentProps> {
constructor(props: IFrameNodePortPropertyTabComponentProps);
toggleExposeOnFrame(value: boolean): void;
render(): import("react/jsx-runtime").JSX.Element;
}
export class LightPropertyTabComponent extends React.Component<BABYLON.NodeEditor.SharedUIComponents.IPropertyComponentProps> {
render(): import("react/jsx-runtime").JSX.Element;
}
export class LightInformationPropertyTabComponent extends React.Component<BABYLON.NodeEditor.SharedUIComponents.IPropertyComponentProps> {
render(): import("react/jsx-runtime").JSX.Element;
}
export class InputPropertyTabComponent extends React.Component<BABYLON.NodeEditor.SharedUIComponents.IPropertyComponentProps> {
private _onValueChangedObserver;
constructor(props: BABYLON.NodeEditor.SharedUIComponents.IPropertyComponentProps);
componentDidMount(): void;
componentWillUnmount(): void;
renderValue(globalState: GlobalState): import("react/jsx-runtime").JSX.Element | null;
setDefaultValue(): void;
render(): import("react/jsx-runtime").JSX.Element;
}
export class ImageSourcePropertyTabComponent extends React.Component<BABYLON.NodeEditor.SharedUIComponents.IPropertyComponentProps, {
isEmbedded: boolean;
}> {
get imageSourceBlock(): BABYLON.ImageSourceBlock;
constructor(props: BABYLON.NodeEditor.SharedUIComponents.IPropertyComponentProps);
UNSAFE_componentWillUpdate(nextProps: BABYLON.NodeEditor.SharedUIComponents.IPropertyComponentProps, nextState: {
isEmbedded: boolean;
loadAsCubeTexture: boolean;
}): void;
private _generateRandomForCache;
updateAfterTextureLoad(): void;
removeTexture(): void;
_prepareTexture(): void;
/**
* Replaces the texture of the node
* @param file the file of the texture to use
*/
replaceTexture(file: File): void;
replaceTextureWithUrl(url: string): void;
render(): import("react/jsx-runtime").JSX.Element;
}
interface IGradientStepComponentProps {
stateManager: BABYLON.NodeEditor.SharedUIComponents.StateManager;
step: BABYLON.GradientBlockColorStep;
lineIndex: number;
onDelete: () => void;
onUpdateStep: () => void;
onCheckForReOrder: () => void;
onCopy?: () => void;
}
export class GradientStepComponent extends React.Component<IGradientStepComponentProps, {
gradient: number;
}> {
constructor(props: IGradientStepComponentProps);
updateColor(color: string): void;
updateStep(gradient: number): void;
onPointerUp(): void;
render(): import("react/jsx-runtime").JSX.Element;
}
export class GradientPropertyTabComponent extends React.Component<BABYLON.NodeEditor.SharedUIComponents.IPropertyComponentProps> {
private _onValueChangedObserver;
constructor(props: BABYLON.NodeEditor.SharedUIComponents.IPropertyComponentProps);
componentDidMount(): void;
componentWillUnmount(): void;
forceRebuild(): void;
deleteStep(step: BABYLON.GradientBlockColorStep): void;
copyStep(step: BABYLON.GradientBlockColorStep): void;
addNewStep(): void;
checkForReOrder(): void;
renderOriginal(): import("react/jsx-runtime").JSX.Element;
renderFluent(): import("react/jsx-runtime").JSX.Element;
render(): import("react/jsx-runtime").JSX.Element;
}
export class DefaultPropertyTabComponent extends React.Component<BABYLON.NodeEditor.SharedUIComponents.IPropertyComponentProps> {
constructor(props: BABYLON.NodeEditor.SharedUIComponents.IPropertyComponentProps);
render(): import("react/jsx-runtime").JSX.Element;
}
/**
* NOTE This is intentionally a function to avoid another wrapper JSX element around the lineContainerComponent, and will ensure
* the lineContainerComponent gets properly rendered as a child of the Accordion
* @param props
* @returns
*/
export function GetGeneralProperties(props: BABYLON.NodeEditor.SharedUIComponents.IPropertyComponentProps): import("react/jsx-runtime").JSX.Element;
/**
* NOTE This is intentionally a function to avoid another wrapper JSX element around the lineContainerComponent, and will ensure
* the lineContainerComponent gets properly rendered as a child of the Accordion
* @param props
* @returns
*/
export function GetGenericProperties(props: BABYLON.NodeEditor.SharedUIComponents.IPropertyComponentProps): import("react/jsx-runtime").JSX.Element;
export interface IFramePropertyTabComponentProps {
globalState: GlobalState;
frame: BABYLON.NodeEditor.SharedUIComponents.GraphFrame;
}
export class FramePropertyTabComponent extends React.Component<IFramePropertyTabComponentProps> {
private _onFrameExpandStateChangedObserver;
constructor(props: IFramePropertyTabComponentProps);
componentDidMount(): void;
componentWillUnmount(): void;
render(): import("react/jsx-runtime").JSX.Element;
}
export interface IFrameNodePortPropertyTabComponentProps {
stateManager: BABYLON.NodeEditor.SharedUIComponents.StateManager;
globalState: GlobalState;
frameNodePort: BABYLON.NodeEditor.SharedUIComponents.FrameNodePort;
frame: BABYLON.NodeEditor.SharedUIComponents.GraphFrame;
}
export class FrameNodePortPropertyTabComponent extends React.Component<IFrameNodePortPropertyTabComponentProps, {
port: BABYLON.NodeEditor.SharedUIComponents.FrameNodePort;
}> {
private _onFramePortPositionChangedObserver;
private _onSelectionChangedObserver;
constructor(props: IFrameNodePortPropertyTabComponentProps);
componentWillUnmount(): void;
render(): import("react/jsx-runtime").JSX.Element;
}
export class DebugNodePropertyTabComponent extends React.Component<BABYLON.NodeEditor.SharedUIComponents.IPropertyComponentProps> {
refreshAll(): void;
render(): import("react/jsx-runtime").JSX.Element;
}
export class ColorMergerPropertyTabComponent extends React.Component<BABYLON.NodeEditor.SharedUIComponents.IPropertyComponentProps> {
constructor(props: BABYLON.NodeEditor.SharedUIComponents.IPropertyComponentProps);
render(): import("react/jsx-runtime").JSX.Element;
}
export class TrigonometryDisplayManager implements BABYLON.NodeEditor.SharedUIComponents.IDisplayManager {
getHeaderClass(): string;
shouldDisplayPortLabels(): boolean;
getHeaderText(nodeData: BABYLON.NodeEditor.SharedUIComponents.INodeData): string;
getBackgroundColor(): string;
updatePreviewContent(nodeData: BABYLON.NodeEditor.SharedUIComponents.INodeData, contentArea: HTMLDivElement): void;
}
export class TextureDisplayManager implements BABYLON.NodeEditor.SharedUIComponents.IDisplayManager {
private _previewCanvas;
private _previewImage;
getHeaderClass(): string;
shouldDisplayPortLabels(): boolean;
getHeaderText(nodeData: BABYLON.NodeEditor.SharedUIComponents.INodeData): string;
getBackgroundColor(nodeData: BABYLON.NodeEditor.SharedUIComponents.INodeData): string;
updatePreviewContent(nodeData: BABYLON.NodeEditor.SharedUIComponents.INodeData, contentArea: HTMLDivElement): void;
}
export class TeleportOutDisplayManager implements BABYLON.NodeEditor.SharedUIComponents.IDisplayManager {
private _hasHighlights;
getHeaderClass(): string;
shouldDisplayPortLabels(): boolean;
getHeaderText(nodeData: BABYLON.NodeEditor.SharedUIComponents.INodeData): string;
getBackgroundColor(nodeData: BABYLON.NodeEditor.SharedUIComponents.INodeData): string;
updatePreviewContent(nodeData: BABYLON.NodeEditor.SharedUIComponents.INodeData, contentArea: HTMLDivElement): void;
onSelectionChanged(nodeData: BABYLON.NodeEditor.SharedUIComponents.INodeData, selectedData: BABYLON.Nullable<BABYLON.NodeEditor.SharedUIComponents.INodeData>, manager: BABYLON.NodeEditor.SharedUIComponents.StateManager): void;
onDispose(nodeData: BABYLON.NodeEditor.SharedUIComponents.INodeData, manager: BABYLON.NodeEditor.SharedUIComponents.StateManager): void;
}
export class TeleportInDisplayManager implements BABYLON.NodeEditor.SharedUIComponents.IDisplayManager {
private _hasHighlights;
getHeaderClass(): string;
shouldDisplayPortLabels(): boolean;
getHeaderText(nodeData: BABYLON.NodeEditor.SharedUIComponents.INodeData): string;
getBackgroundColor(nodeData: BABYLON.NodeEditor.SharedUIComponents.INodeData): string;
updatePreviewContent(nodeData: BABYLON.NodeEditor.SharedUIComponents.INodeData, contentArea: HTMLDivElement): void;
onSelectionChanged(nodeData: BABYLON.NodeEditor.SharedUIComponents.INodeData, selectedData: BABYLON.Nullable<BABYLON.NodeEditor.SharedUIComponents.INodeData>, manager: BABYLON.NodeEditor.SharedUIComponents.StateManager): void;
onDispose(nodeData: BABYLON.NodeEditor.SharedUIComponents.INodeData, manager: BABYLON.NodeEditor.SharedUIComponents.StateManager): void;
}
export class RemapDisplayManager implements BABYLON.NodeEditor.SharedUIComponents.IDisplayManager {
getHeaderClass(): string;
shouldDisplayPortLabels(): boolean;
getHeaderText(nodeData: BABYLON.NodeEditor.SharedUIComponents.INodeData): string;
getBackgroundColor(): string;
private _extractInputValue;
updatePreviewContent(nodeData: BABYLON.NodeEditor.SharedUIComponents.INodeData, contentArea: HTMLDivElement): void;
}
export class PBRDisplayManager implements BABYLON.NodeEditor.SharedUIComponents.IDisplayManager {
getHeaderClass(): string;
shouldDisplayPortLabels(): boolean;
getHeaderText(nodeData: BABYLON.NodeEditor.SharedUIComponents.INodeData): string;
getBackgroundColor(): string;
updatePreviewContent(nodeData: BABYLON.NodeEditor.SharedUIComponents.INodeData, contentArea: HTMLDivElement): void;
}
export class OutputDisplayManager implements BABYLON.NodeEditor.SharedUIComponents.IDisplayManager {
getHeaderClass(): string;
shouldDisplayPortLabels(): boolean;
getHeaderText(nodeData: BABYLON.NodeEditor.SharedUIComponents.INodeData): string;
getBackgroundColor(): string;
updatePreviewContent(nodeData: BABYLON.NodeEditor.SharedUIComponents.INodeData, contentArea: HTMLDivElement): void;
}
export class MeshAttributeExistsDisplayManager implements BABYLON.NodeEditor.SharedUIComponents.IDisplayManager {
getHeaderClass(nodeData: BABYLON.NodeEditor.SharedUIComponents.INodeData): string;
shouldDisplayPortLabels(): boolean;
getHeaderText(nodeData: BABYLON.NodeEditor.SharedUIComponents.INodeData): string;
getBackgroundColor(nodeData: BABYLON.NodeEditor.SharedUIComponents.INodeData): string;
updatePreviewContent(): void;
}
export class LoopDisplayManager implements BABYLON.NodeEditor.SharedUIComponents.IDisplayManager {
getHeaderClass(): string;
shouldDisplayPortLabels(): boolean;
getHeaderText(nodeData: BABYLON.NodeEditor.SharedUIComponents.INodeData): string;
getBackgroundColor(): string;
updatePreviewContent(nodeData: BABYLON.NodeEditor.SharedUIComponents.INodeData, contentArea: HTMLDivElement): void;
}
export class InputDisplayManager implements BABYLON.NodeEditor.SharedUIComponents.IDisplayManager {
getHeaderClass(nodeData: BABYLON.NodeEditor.SharedUIComponents.INodeData): string;
shouldDisplayPortLabels(): boolean;
getHeaderText(nodeData: BABYLON.NodeEditor.SharedUIComponents.INodeData): string;
static GetBaseType(type: BABYLON.NodeMaterialBlockConnectionPointTypes): string;
getBackgroundColor(nodeData: BABYLON.NodeEditor.SharedUIComponents.INodeData): string;
updatePreviewContent(nodeData: BABYLON.NodeEditor.SharedUIComponents.INodeData, contentArea: HTMLDivElement): void;
}
export class ImageSourceDisplayManager implements BABYLON.NodeEditor.SharedUIComponents.IDisplayManager {
private _previewCanvas;
private _previewImage;
getHeaderClass(): string;
shouldDisplayPortLabels(): boolean;
getHeaderText(nodeData: BABYLON.NodeEditor.SharedUIComponents.INodeData): string;
getBackgroundColor(): string;
updatePreviewContent(nodeData: BABYLON.NodeEditor.SharedUIComponents.INodeData, contentArea: HTMLDivElement): void;
}
export class GradientDisplayManager implements BABYLON.NodeEditor.SharedUIComponents.IDisplayManager {
getHeaderClass(): string;
shouldDisplayPortLabels(): boolean;
getHeaderText(nodeData: BABYLON.NodeEditor.SharedUIComponents.INodeData): string;
getBackgroundColor(nodeData: BABYLON.NodeEditor.SharedUIComponents.INodeData): string;
updatePreviewContent(nodeData: BABYLON.NodeEditor.SharedUIComponents.INodeData, contentArea: HTMLDivElement): void;
}
export class ElbowDisplayManager implements BABYLON.NodeEditor.SharedUIComponents.IDisplayManager {
getHeaderClass(): string;
shouldDisplayPortLabels(): boolean;
getHeaderText(nodeData: BABYLON.NodeEditor.SharedUIComponents.INodeData): string;
getBackgroundColor(nodeData: BABYLON.NodeEditor.SharedUIComponents.INodeData): string;
updatePreviewContent(_nodeData: BABYLON.NodeEditor.SharedUIComponents.INodeData, _contentArea: HTMLDivElement): void;
updateFullVisualContent(data: BABYLON.NodeEditor.SharedUIComponents.INodeData, visualContent: BABYLON.NodeEditor.SharedUIComponents.VisualContentDescription): void;
}
export class DiscardDisplayManager implements BABYLON.NodeEditor.SharedUIComponents.IDisplayManager {
getHeaderClass(): string;
shouldDisplayPortLabels(): boolean;
getHeaderText(nodeData: BABYLON.NodeEditor.SharedUIComponents.INodeData): string;
getBackgroundColor(): string;
updatePreviewContent(nodeData: BABYLON.NodeEditor.SharedUIComponents.INodeData, contentArea: HTMLDivElement): void;
}
export class DepthSourceDisplayManager implements BABYLON.NodeEditor.SharedUIComponents.IDisplayManager {
getHeaderClass(): string;
shouldDisplayPortLabels(): boolean;
getHeaderText(nodeData: BABYLON.NodeEditor.SharedUIComponents.INodeData): string;
getBackgroundColor(): string;
updatePreviewContent(): void;
}
export class DebugDisplayManager implements BABYLON.NodeEditor.SharedUIComponents.IDisplayManager {
private _previewCanvas;
private _previewImage;
private _onPreviewSceneAfterRenderObserver;
getHeaderClass(): string;
shouldDisplayPortLabels(): boolean;
getHeaderText(nodeData: BABYLON.NodeEditor.SharedUIComponents.INodeData): string;
getBackgroundColor(): string;
onSelectionChanged?(data: BABYLON.NodeEditor.SharedUIComponents.INodeData, selectedData: BABYLON.Nullable<BABYLON.NodeEditor.SharedUIComponents.INodeData>, manager: BABYLON.NodeEditor.SharedUIComponents.StateManager): void;
updatePreviewContent(nodeData: BABYLON.NodeEditor.SharedUIComponents.INodeData, contentArea: HTMLDivElement): void;
updateFullVisualContent(data: BABYLON.NodeEditor.SharedUIComponents.INodeData, visualContent: BABYLON.NodeEditor.SharedUIComponents.VisualContentDescription): void;
}
export class CurveDisplayManager implements BABYLON.NodeEditor.SharedUIComponents.IDisplayManager {
getHeaderClass(): string;
shouldDisplayPortLabels(): boolean;
getHeaderText(nodeData: BABYLON.NodeEditor.SharedUIComponents.INodeData): string;
getBackgroundColor(): string;
updatePreviewContent(nodeData: BABYLON.NodeEditor.SharedUIComponents.INodeData, contentArea: HTMLDivElement): void;
}
export class ConditionalDisplayManager implements BABYLON.NodeEditor.SharedUIComponents.IDisplayManager {
getHeaderClass(): string;
shouldDisplayPortLabels(): boolean;
getHeaderText(nodeData: BABYLON.NodeEditor.SharedUIComponents.INodeData): string;
getBackgroundColor(): string;
updatePreviewContent(): void;
}
export class ClampDisplayManager implements BABYLON.NodeEditor.SharedUIComponents.IDisplayManager {
getHeaderClass(): string;
shouldDisplayPortLabels(): boolean;
getHeaderText(nodeData: BABYLON.NodeEditor.SharedUIComponents.INodeData): string;
getBackgroundColor(): string;
updatePreviewContent(nodeData: BABYLON.NodeEditor.SharedUIComponents.INodeData, contentArea: HTMLDivElement): void;
}
interface IPropertyTabComponentProps {
globalState: GlobalState;
lockObject: BABYLON.NodeEditor.SharedUIComponents.LockObject;
}
interface IPropertyTabComponentState {
currentNode: BABYLON.Nullable<BABYLON.NodeEditor.SharedUIComponents.GraphNode>;
currentFrame: BABYLON.Nullable<BABYLON.NodeEditor.SharedUIComponents.GraphFrame>;
currentFrameNodePort: BABYLON.Nullable<BABYLON.NodeEditor.SharedUIComponents.FrameNodePort>;
currentNodePort: BABYLON.Nullable<BABYLON.NodeEditor.SharedUIComponents.NodePort>;
uploadInProgress: boolean;
}
export class PropertyTabComponent extends React.Component<IPropertyTabComponentProps, IPropertyTabComponentState> {
private _onBuiltObserver;
private _modeSelect;
constructor(props: IPropertyTabComponentProps);
componentDidMount(): void;
componentWillUnmount(): void;
processInputBlockUpdate(ib: BABYLON.InputBlock): void;
renderInputBlock(block: BABYLON.InputBlock): import("react/jsx-runtime").JSX.Element | null;
load(file: File): void;
loadFrame(file: File): void;
save(): void;
customSave(): void;
saveToSnippetServer(): void;
loadFromSnippet(): void;
changeMode(value: any, force?: boolean, loadDefault?: boolean): boolean;
render(): import("react/jsx-runtime").JSX.Element | null | undefined;
}
interface IInputsPropertyTabComponentProps {
globalState: GlobalState;
inputs: BABYLON.InputBlock[];
lockObject: BABYLON.NodeEditor.SharedUIComponents.LockObject;
}
/**
* NOTE if being used within a PropertyTabComponentBase (which is a wrapper for Accordion), call as a function rather than
* rendering as a component. This will avoid a wrapper JSX element existing before the lineContainerComponent and will ensure
* the lineContainerComponent gets properly rendered as a child of the Accordion
* @param props
* @returns
*/
export function GetInputProperties(props: IInputsPropertyTabComponentProps): import("react/jsx-runtime").JSX.Element;
interface IVector4PropertyTabComponentProps {
globalState: GlobalState;
inputBlock: BABYLON.InputBlock;
lockObject: BABYLON.NodeEditor.SharedUIComponents.LockObject;
}
export class Vector4PropertyTabComponent extends React.Component<IVector4PropertyTabComponentProps> {
render(): import("react/jsx-runtime").JSX.Element;
}
interface IVector3PropertyTabComponentProps {
globalState: GlobalState;
inputBlock: BABYLON.InputBlock;
lockObject: BABYLON.NodeEditor.SharedUIComponents.LockObject;
}
export class Vector3PropertyTabComponent extends React.Component<IVector3PropertyTabComponentProps> {
render(): import("react/jsx-runtime").JSX.Element;
}
interface IVector2PropertyTabComponentProps {
globalState: GlobalState;
inputBlock: BABYLON.InputBlock;
lockObject: BABYLON.NodeEditor.SharedUIComponents.LockObject;
}
export class Vector2PropertyTabComponent extends React.Component<IVector2PropertyTabComponentProps> {
render(): import("react/jsx-runtime").JSX.Element;
}
interface IMatrixPropertyTabComponentProps {
globalState: GlobalState;
inputBlock: BABYLON.InputBlock;
lockObject: BABYLON.NodeEditor.SharedUIComponents.LockObject;
}
export class MatrixPropertyTabComponent extends React.Component<IMatrixPropertyTabComponentProps> {
render(): import("react/jsx-runtime").JSX.Element;
}
interface IFloatPropertyTabComponentProps {
globalState: GlobalState;
inputBlock: BABYLON.InputBlock;
}
export class FloatPropertyTabComponent extends React.Component<IFloatPropertyTabComponentProps> {
render(): import("react/jsx-runtime").JSX.Element;
}
interface IColor4PropertyTabComponentProps {
globalState: GlobalState;
inputBlock: BABYLON.InputBlock;
lockObject: BABYLON.NodeEditor.SharedUIComponents.LockObject;
}
export class Color4PropertyTabComponent extends React.Component<IColor4PropertyTabComponentProps> {
render(): import("react/jsx-runtime").JSX.Element;
}
interface IColor3PropertyTabComponentProps {
globalState: GlobalState;
inputBlock: BABYLON.InputBlock;
lockObject: BABYLON.NodeEditor.SharedUIComponents.LockObject;
}
export class Color3PropertyTabComponent extends React.Component<IColor3PropertyTabComponentProps> {
render(): import("react/jsx-runtime").JSX.Element;
}
export enum PreviewType {
Sphere = 0,
Box = 1,
Torus = 2,
Cylinder = 3,
Plane = 4,
ShaderBall = 5,
DefaultParticleSystem = 6,
Bubbles = 7,
Smoke = 8,
Rain = 9,
Explosion = 10,
Fire = 11,
Parrot = 12,
BricksSkull = 13,
Plants = 14,
Custom = 15,
Room = 16
}
interface IPreviewMeshControlComponent {
globalState: GlobalState;
togglePreviewAreaComponent: () => void;
onMounted?: () => void;
}
export class PreviewMeshControlComponent extends React.Component<IPreviewMeshControlComponent> {
private _colorInputRef;
private _filePickerRef;
private _envPickerRef;
private _onResetRequiredObserver;
private _onDropEventObserver;
private _onRefreshPreviewMeshControlComponentRequiredObserver;
constructor(props: IPreviewMeshControlComponent);
componentWillUnmount(): void;
componentDidMount(): void;
changeMeshType(newOne: PreviewType): void;
useCustomMesh(evt: any): void;
useCustomEnv(evt: any): void;
onPopUp(): void;
changeAnimation(): void;
changeBackground(value: string): void;
changeBackgroundClick(): void;
render(): import("react/jsx-runtime").JSX.Element;
}
export class PreviewManager {
private _nodeMaterial;
private _onBuildObserver;
private _onPreviewCommandActivatedObserver;
private _onAnimationCommandActivatedObserver;
private _onUpdateRequiredObserver;
private _onPreviewBackgroundChangedObserver;
private _onBackFaceCullingChangedObserver;
private _onDepthPrePassChangedObserver;
private _onLightUpdatedObserver;
private _onBackgroundHDRUpdatedObserver;
private _engine;
private _scene;
private _meshes;
private _camera;
private _material;
private _globalState;
private _currentType;
private _lightParent;
private _postprocess;
private _proceduralTexture;
private _particleSystem;
private _layer;
private _hdrSkyBox;
private _hdrTexture;
private _serializeMaterial;
/**
* Create a new Preview Manager
* @param targetCanvas defines the canvas to render to
* @param globalState defines the global state
*/
constructor(targetCanvas: HTMLCanvasElement, globalState: GlobalState);
_initAsync(targetCanvas: HTMLCanvasElement): Promise<void>;
private _reset;
private _handleAnimations;
private _prepareLights;
private _prepareBackgroundHDR;
private _prepareScene;
/**
* Default Environment URL
*/
static DefaultEnvironmentURL: string;
private _refreshPreviewMesh;
private _loadParticleSystem;
private _forceCompilationAsync;
private _updatePreview;
dispose(): void;
}
interface IPreviewAreaComponentProps {
globalState: GlobalState;
onMounted?: () => void;
}
export class PreviewAreaComponent extends React.Component<IPreviewAreaComponentProps, {
isLoading: boolean;
}> {
private _onIsLoadingChangedObserver;
private _onResetRequiredObserver;
private _consoleRef;
constructor(props: IPreviewAreaComponentProps);
componentDidMount(): void;
componentWillUnmount(): void;
changeBackFaceCulling(value: boolean): void;
changeDepthPrePass(value: boolean): void;
_onPointerOverCanvas: () => void;
_onPointerOutCanvas: () => void;
changeParticleSystemBlendMode(newOne: number): void;
processPointerMove(e: React.PointerEvent<HTMLCanvasElement>): Promise<void>;
onKeyUp(e: React.KeyboardEvent<HTMLCanvasElement>): void;
render(): import("react/jsx-runtime").JSX.Element;
}
interface INodeListComponentProps {
globalState: GlobalState;
}
export class NodeListComponent extends React.Component<INodeListComponentProps, {
filter: string;
}> {
private _onResetRequiredObserver;
private static _Tooltips;
private _customFrameList;
private _customBlockList;
constructor(props: INodeListComponentProps);
componentWillUnmount(): void;
filterContent(filter: string): void;
loadCustomFrame(file: File): void;
removeItem(value: string): void;
loadCustomBlock(file: File): void;
removeCustomBlock(value: string): void;
renderFluent(blockMenu: JSX.Element[]): import("react/jsx-runtime").JSX.Element;
renderOriginal(blockMenu: JSX.Element[]): import("react/jsx-runtime").JSX.Element;
render(): import("react/jsx-runtime").JSX.Element;
}
interface ILogComponentProps {
globalState: GlobalState;
}
export class LogEntry {
message: string;
isError: boolean;
time: Date;
constructor(message: string, isError: boolean);
}
export class LogComponent extends React.Component<ILogComponentProps, {
logs: LogEntry[];
}> {
private _logConsoleRef;
constructor(props: ILogComponentProps);
componentDidMount(): void;
componentDidUpdate(): void;
render(): import("react/jsx-runtime").JSX.Element;
}
}
declare module BABYLON.NodeEditor.SharedUIComponents {
/**
* Copy all styles from a document to another document or shadow root
* @param source document to copy styles from
* @param target document or shadow root to copy styles to
*/
export function CopyStyles(source: Document, target: DocumentOrShadowRoot): void;
/**
* Merges classNames by array of strings or conditions
* @param classNames Array of className strings or truthy conditions
* @returns A concatenated string, suitable for the className attribute
*/
export function MergeClassNames(classNames: ClassNameCondition[]): string;
/**
* className (replicating React type) or a tuple with the second member being any truthy value ["className", true]
*/
type ClassNameCondition = string | undefined | [string, any];
}
declare module BABYLON.NodeEditor {
}
declare module BABYLON.NodeEditor.SharedUIComponents {
export class StringTools {
private static _SaveAs;
private static _Click;
/**
* Download a string into a file that will be saved locally by the browser
* @param document
* @param content defines the string to download locally as a file
* @param filename
*/
static DownloadAsFile(document: HTMLDocument, content: string, filename: string): void;
}
}
declare module BABYLON.NodeEditor {
}
declare module BABYLON.NodeEditor.SharedUIComponents {
export class PropertyChangedEvent {
object: any;
property: string;
value: any;
initialValue: any;
allowNullValue?: boolean;
}
}
declare module BABYLON.NodeEditor {
}
declare module BABYLON.NodeEditor.SharedUIComponents {
/**
* Create a popup window
* @param title default title for the popup
* @param options options for the popup
* @returns the parent control of the popup
*/
export function CreatePopup(title: string, options: Partial<{
onParentControlCreateCallback?: (parentControl: HTMLDivElement) => void;
onWindowCreateCallback?: (newWindow: Window) => void;
width?: number;
height?: number;
}>): HTMLDivElement | null;
}
declare module BABYLON.NodeEditor {
}
declare module BABYLON.NodeEditor.SharedUIComponents {
/**
* Class handling undo / redo operations
*/
export class HistoryStack implements BABYLON.IDisposable {
private _historyStack;
private _redoStack;
private _activeData;
private readonly _maxHistoryLength;
private _locked;
private _dataProvider;
private _applyUpdate;
/**
* Gets or sets a boolean indicating if the stack is enabled
*/
isEnabled: boolean;
/**
* Constructor
* @param dataProvider defines the data provider function
* @param applyUpdate defines the code to execute when undo/redo operation is required
*/
constructor(dataProvider: () => any, applyUpdate: (data: any) => void);
/**
* Process key event to handle undo / redo
* @param evt defines the keyboard event to process
* @returns true if the event was processed
*/
processKeyEvent(evt: KeyboardEvent): boolean;
/**
* Resets the stack
*/
reset(): void;
/**