/// declare module "babylonjs-gui-editor/components/log/logComponent" { import * as React from "react"; import { GlobalState } from "babylonjs-gui-editor/globalState"; interface ILogComponentProps { globalState: GlobalState; } export class LogEntry { message: string; isError: boolean; constructor(message: string, isError: boolean); } export class LogComponent extends React.Component { constructor(props: ILogComponentProps); componentDidMount(): void; componentDidUpdate(): void; render(): JSX.Element; } } declare module "babylonjs-gui-editor/diagram/workbench" { import * as React from "react"; import { GlobalState } from "babylonjs-gui-editor/globalState"; import { GUINode } from "babylonjs-gui-editor/diagram/guiNode"; import { Control } from 'babylonjs-gui/2D/controls/control'; export interface IWorkbenchComponentProps { globalState: GlobalState; } export type FramePortData = {}; export const isFramePortData: (variableToCheck: any) => variableToCheck is FramePortData; export class WorkbenchComponent extends React.Component { private readonly MinZoom; private readonly MaxZoom; private _hostCanvas; private _gridCanvas; private _selectionContainer; private _frameContainer; private _svgCanvas; private _rootContainer; private _guiNodes; private _mouseStartPointX; private _mouseStartPointY; private _selectionStartX; private _selectionStartY; private _x; private _y; private _zoom; private _selectedGuiNodes; private _gridSize; private _selectionBox; private _frameCandidate; private _altKeyIsPressed; private _ctrlKeyIsPressed; private _oldY; _frameIsMoving: boolean; _isLoading: boolean; isOverGUINode: boolean; get gridSize(): number; set gridSize(value: number); get globalState(): GlobalState; get nodes(): GUINode[]; get zoom(): number; set zoom(value: number); get x(): number; set x(value: number); get y(): number; set y(value: number); get selectedGuiNodes(): GUINode[]; get canvasContainer(): HTMLDivElement; get hostCanvas(): HTMLDivElement; get svgCanvas(): HTMLElement; get selectionContainer(): HTMLDivElement; get frameContainer(): HTMLDivElement; constructor(props: IWorkbenchComponentProps); getGridPosition(position: number, useCeil?: boolean): number; getGridPositionCeil(position: number): number; updateTransform(): void; onKeyUp(): void; findNodeFromGuiElement(guiControl: Control): GUINode; reset(): void; appendBlock(guiElement: Control): GUINode; distributeGraph(): void; componentDidMount(): void; onMove(evt: React.PointerEvent): void; onDown(evt: React.PointerEvent): void; onUp(evt: React.PointerEvent): void; onWheel(evt: React.WheelEvent): void; zoomToFit(): void; createGUICanvas(): void; updateGUIs(): void; render(): JSX.Element; } } declare module "babylonjs-gui-editor/diagram/properties/propertyComponentProps" { import { Control } from "babylonjs-gui/2D/controls/control"; import { GlobalState } from "babylonjs-gui-editor/globalState"; export interface IPropertyComponentProps { globalState: GlobalState; guiControl: Control; } } declare module "babylonjs-gui-editor/sharedUiComponents/lines/lineContainerComponent" { import * as React from "react"; interface ILineContainerComponentProps { title: string; children: any[] | any; closed?: boolean; } export class LineContainerComponent extends React.Component { constructor(props: ILineContainerComponentProps); switchExpandedState(): void; renderHeader(): JSX.Element; render(): JSX.Element; } } declare module "babylonjs-gui-editor/sharedUiComponents/propertyChangedEvent" { export class PropertyChangedEvent { object: any; property: string; value: any; initialValue: any; allowNullValue?: boolean; } } declare module "babylonjs-gui-editor/sharedUiComponents/lines/checkBoxLineComponent" { import * as React from "react"; import { Observable } from "babylonjs/Misc/observable"; import { PropertyChangedEvent } from "babylonjs-gui-editor/sharedUiComponents/propertyChangedEvent"; export interface ICheckBoxLineComponentProps { label: string; target?: any; propertyName?: string; isSelected?: () => boolean; onSelect?: (value: boolean) => void; onValueChanged?: () => void; onPropertyChangedObservable?: Observable; disabled?: boolean; } export class CheckBoxLineComponent extends React.Component { private static _UniqueIdSeed; private _uniqueId; private _localChange; constructor(props: ICheckBoxLineComponentProps); shouldComponentUpdate(nextProps: ICheckBoxLineComponentProps, nextState: { isSelected: boolean; isDisabled: boolean; }): boolean; onChange(): void; render(): JSX.Element; } } declare module "babylonjs-gui-editor/sharedComponents/propertyChangedEvent" { export class PropertyChangedEvent { object: any; property: string; value: any; initialValue: any; } } declare module "babylonjs-gui-editor/sharedComponents/floatLineComponent" { import * as React from "react"; import { Observable } from "babylonjs/Misc/observable"; import { PropertyChangedEvent } from "babylonjs-gui-editor/sharedComponents/propertyChangedEvent"; import { GlobalState } from "babylonjs-gui-editor/globalState"; interface IFloatLineComponentProps { label: string; target: any; propertyName: string; onChange?: (newValue: number) => void; isInteger?: boolean; onPropertyChangedObservable?: Observable; additionalClass?: string; step?: string; digits?: number; globalState: GlobalState; min?: number; max?: number; smallUI?: boolean; onEnter?: (newValue: number) => void; } export class FloatLineComponent extends React.Component { private _localChange; private _store; private _regExp; private _digits; constructor(props: IFloatLineComponentProps); shouldComponentUpdate(nextProps: IFloatLineComponentProps, nextState: { value: string; }): boolean; raiseOnPropertyChanged(newValue: number, previousValue: number): void; updateValue(valueString: string): void; render(): JSX.Element; } } declare module "babylonjs-gui-editor/sharedComponents/sliderLineComponent" { import * as React from "react"; import { Observable } from "babylonjs/Misc/observable"; import { PropertyChangedEvent } from "babylonjs-gui-editor/sharedComponents/propertyChangedEvent"; import { GlobalState } from "babylonjs-gui-editor/globalState"; interface ISliderLineComponentProps { label: string; target?: any; propertyName?: string; minimum: number; maximum: number; step: number; directValue?: number; useEuler?: boolean; onChange?: (value: number) => void; onInput?: (value: number) => void; onPropertyChangedObservable?: Observable; decimalCount?: number; globalState: GlobalState; } export class SliderLineComponent extends React.Component { private _localChange; constructor(props: ISliderLineComponentProps); shouldComponentUpdate(nextProps: ISliderLineComponentProps, nextState: { value: number; }): boolean; onChange(newValueString: any): void; onInput(newValueString: any): void; prepareDataToRead(value: number): number; render(): JSX.Element; } } declare module "babylonjs-gui-editor/diagram/properties/genericNodePropertyComponent" { import * as React from "react"; import { IPropertyComponentProps } from "babylonjs-gui-editor/diagram/properties/propertyComponentProps"; export class GenericPropertyComponent extends React.Component { constructor(props: IPropertyComponentProps); render(): JSX.Element; } export class GeneralPropertyTabComponent extends React.Component { constructor(props: IPropertyComponentProps); render(): JSX.Element; } export class GenericPropertyTabComponent extends React.Component { constructor(props: IPropertyComponentProps); forceRebuild(notifiers?: { "rebuild"?: boolean; "update"?: boolean; }): void; render(): JSX.Element; } } declare module "babylonjs-gui-editor/sharedComponents/numericInputComponent" { import * as React from "react"; import { GlobalState } from "babylonjs-gui-editor/globalState"; interface INumericInputComponentProps { label: string; value: number; step?: number; onChange: (value: number) => void; globalState: GlobalState; } export class NumericInputComponent extends React.Component { static defaultProps: { step: number; }; private _localChange; constructor(props: INumericInputComponentProps); shouldComponentUpdate(nextProps: INumericInputComponentProps, nextState: { value: string; }): boolean; updateValue(evt: any): void; render(): JSX.Element; } } declare module "babylonjs-gui-editor/sharedUiComponents/lines/textLineComponent" { import * as React from "react"; interface ITextLineComponentProps { label?: string; value?: string; color?: string; underline?: boolean; onLink?: () => void; url?: string; ignoreValue?: boolean; additionalClass?: string; } export class TextLineComponent extends React.Component { constructor(props: ITextLineComponentProps); onLink(): void; renderContent(): JSX.Element | null; render(): JSX.Element; } } declare module "babylonjs-gui-editor/diagram/properties/sliderGuiPropertyComponent" { import * as React from "react"; import { IPropertyComponentProps } from "babylonjs-gui-editor/diagram/properties/propertyComponentProps"; export class SliderPropertyTabComponent extends React.Component { constructor(props: IPropertyComponentProps); private _slider; render(): JSX.Element; } } declare module "babylonjs-gui-editor/diagram/propertyLedger" { import { ComponentClass } from 'react'; import { IPropertyComponentProps } from "babylonjs-gui-editor/diagram/properties/propertyComponentProps"; export class PropertyGuiLedger { static RegisteredControls: { [key: string]: ComponentClass; }; } } declare module "babylonjs-gui-editor/diagram/guiNode" { import { GlobalState } from "babylonjs-gui-editor/globalState"; import { Nullable } from 'babylonjs/types'; import { Control } from 'babylonjs-gui/2D/controls/control'; import { Vector2 } from 'babylonjs/Maths/math.vector'; export class GUINode { guiControl: Control; private _x; private _y; private _gridAlignedX; private _gridAlignedY; private _globalState; private _onSelectionChangedObserver; private _onSelectionBoxMovedObserver; private _onUpdateRequiredObserver; private _ownerCanvas; private _isSelected; private _isVisible; private _enclosingFrameId; get isVisible(): boolean; set isVisible(value: boolean); get gridAlignedX(): number; get gridAlignedY(): number; get x(): number; set x(value: number); get y(): number; set y(value: number); get width(): number; get height(): number; get id(): number; get name(): string | undefined; get isSelected(): boolean; get enclosingFrameId(): number; set enclosingFrameId(value: number); set isSelected(value: boolean); constructor(globalState: GlobalState, guiControl: Control); cleanAccumulation(useCeil?: boolean): void; clicked: boolean; _onMove(evt: Vector2, startPos: Vector2): boolean; renderProperties(): Nullable; updateVisual(): void; dispose(): void; } } declare module "babylonjs-gui-editor/globalState" { import { Nullable } from "babylonjs/types"; import { Observable } from "babylonjs/Misc/observable"; import { LogEntry } from "babylonjs-gui-editor/components/log/logComponent"; import { Color4 } from "babylonjs/Maths/math.color"; import { GUINode } from "babylonjs-gui-editor/diagram/guiNode"; import { WorkbenchComponent } from "babylonjs-gui-editor/diagram/workbench"; import { AdvancedDynamicTexture } from "babylonjs-gui/2D/advancedDynamicTexture"; export class GlobalState { guiTexture: AdvancedDynamicTexture; hostElement: HTMLElement; hostDocument: HTMLDocument; hostWindow: Window; onSelectionChangedObservable: Observable>; onRebuildRequiredObservable: Observable; onBuiltObservable: Observable; onResetRequiredObservable: Observable; onUpdateRequiredObservable: Observable; onReOrganizedRequiredObservable: Observable; onLogRequiredObservable: Observable; onErrorMessageDialogRequiredObservable: Observable; onIsLoadingChanged: Observable; onSelectionBoxMoved: Observable; onGuiNodeRemovalObservable: Observable; backgroundColor: Color4; blockKeyboardEvents: boolean; controlCamera: boolean; workbench: WorkbenchComponent; storeEditorData: (serializationObject: any) => void; customSave?: { label: string; action: (data: string) => Promise; }; constructor(); } } declare module "babylonjs-gui-editor/sharedUiComponents/lines/draggableLineComponent" { import * as React from "react"; export interface IButtonLineComponentProps { data: string; tooltip: string; } export class DraggableLineComponent extends React.Component { constructor(props: IButtonLineComponentProps); render(): JSX.Element; } } declare module "babylonjs-gui-editor/components/guiList/guiListComponent" { import * as React from "react"; import { GlobalState } from "babylonjs-gui-editor/globalState"; interface IGuiListComponentProps { globalState: GlobalState; } export class GuiListComponent extends React.Component { private _onResetRequiredObserver; private static _Tooltips; constructor(props: IGuiListComponentProps); componentWillUnmount(): void; filterContent(filter: string): void; render(): JSX.Element; } } declare module "babylonjs-gui-editor/sharedUiComponents/lines/buttonLineComponent" { import * as React from "react"; export interface IButtonLineComponentProps { label: string; onClick: () => void; } export class ButtonLineComponent extends React.Component { constructor(props: IButtonLineComponentProps); render(): JSX.Element; } } declare module "babylonjs-gui-editor/sharedUiComponents/lines/fileButtonLineComponent" { import * as React from "react"; interface IFileButtonLineComponentProps { label: string; onClick: (file: File) => void; accept: string; } export class FileButtonLineComponent extends React.Component { private static _IDGenerator; private _id; private uploadInputRef; constructor(props: IFileButtonLineComponentProps); onChange(evt: any): void; render(): JSX.Element; } } declare module "babylonjs-gui-editor/serializationTools" { import { GlobalState } from "babylonjs-gui-editor/globalState"; export class SerializationTools { static Deserialize(serializationObject: any, globalState: GlobalState): void; } } declare module "babylonjs-gui-editor/components/propertyTab/propertyTabComponent" { import * as React from "react"; import { GlobalState } from "babylonjs-gui-editor/globalState"; import { Nullable } from 'babylonjs/types'; import { GUINode } from "babylonjs-gui-editor/diagram/guiNode"; interface IPropertyTabComponentProps { globalState: GlobalState; } interface IPropertyTabComponentState { currentNode: Nullable; } export class PropertyTabComponent extends React.Component { private _onBuiltObserver; constructor(props: IPropertyTabComponentProps); componentDidMount(): void; componentWillUnmount(): void; load(file: File): void; loadFrame(file: File): void; save(): void; customSave(): void; saveToSnippetServer(): void; loadFromSnippet(): void; render(): JSX.Element; } } declare module "babylonjs-gui-editor/portal" { import * as React from "react"; import { GlobalState } from "babylonjs-gui-editor/globalState"; interface IPortalProps { globalState: GlobalState; } export class Portal extends React.Component { render(): React.ReactPortal; } } declare module "babylonjs-gui-editor/guiNodeTools" { import { Checkbox } from "babylonjs-gui/2D/controls/checkbox"; import { ColorPicker } from "babylonjs-gui/2D/controls/colorpicker"; import { Ellipse } from "babylonjs-gui/2D/controls/ellipse"; import { Line } from "babylonjs-gui/2D/controls/line"; import { Rectangle } from "babylonjs-gui/2D/controls/rectangle"; import { Slider } from "babylonjs-gui/2D/controls/sliders/slider"; import { TextBlock } from "babylonjs-gui/2D/controls/textBlock"; export class GUINodeTools { static CreateControlFromString(data: string): Slider | Checkbox | ColorPicker | Ellipse | Rectangle | Line | TextBlock; } } declare module "babylonjs-gui-editor/nodeLocationInfo" { export interface INodeLocationInfo { blockId: number; x: number; y: number; } export interface IFrameData { x: number; y: number; width: number; height: number; color: number[]; name: string; isCollapsed: boolean; blocks: number[]; comments: string; } export interface IEditorData { locations: INodeLocationInfo[]; x: number; y: number; zoom: number; frames?: IFrameData[]; map?: { [key: number]: number; }; } } declare module "babylonjs-gui-editor/sharedComponents/messageDialog" { import * as React from "react"; import { GlobalState } from "babylonjs-gui-editor/globalState"; interface IMessageDialogComponentProps { globalState: GlobalState; } export class MessageDialogComponent extends React.Component { constructor(props: IMessageDialogComponentProps); render(): JSX.Element | null; } } declare module "babylonjs-gui-editor/workbenchEditor" { import * as React from "react"; import { GlobalState } from "babylonjs-gui-editor/globalState"; import { Nullable } from "babylonjs/types"; import { IEditorData } from "babylonjs-gui-editor/nodeLocationInfo"; import { GUINode } from "babylonjs-gui-editor/diagram/guiNode"; import { Control } from "babylonjs-gui/2D/controls/control"; interface IGraphEditorProps { globalState: GlobalState; } interface IGraphEditorState { showPreviewPopUp: boolean; } export class WorkbenchEditor extends React.Component { private _workbenchCanvas; private _startX; private _moveInProgress; private _leftWidth; private _rightWidth; private _blocks; private _onWidgetKeyUpPointer; private _popUpWindow; /** * Creates a node and recursivly creates its parent nodes from it's input * @param block */ createNodeFromObject(block: Control, recursion?: boolean): Nullable; componentDidMount(): void; componentWillUnmount(): void; constructor(props: IGraphEditorProps); pasteSelection(copiedNodes: GUINode[], currentX: number, currentY: number, selectNew?: boolean): GUINode[]; zoomToFit(): void; showWaitScreen(): void; hideWaitScreen(): void; reOrganize(editorData?: Nullable, isImportingAFrame?: boolean): void; onPointerDown(evt: React.PointerEvent): void; onPointerUp(evt: React.PointerEvent): void; resizeColumns(evt: React.PointerEvent, forLeft?: boolean): void; buildColumnLayout(): string; emitNewBlock(event: React.DragEvent): void; handlePopUp: () => void; handleClosingPopUp: () => void; createPopupWindow: (title: string, windowVariableName: string, width?: number, height?: number) => Window | null; copyStyles: (sourceDoc: HTMLDocument, targetDoc: HTMLDocument) => void; fixPopUpStyles: (document: Document) => void; render(): JSX.Element; } } declare module "babylonjs-gui-editor/sharedUiComponents/lines/popup" { export class Popup { static CreatePopup(title: string, windowVariableName: string, width?: number, height?: number): HTMLDivElement | null; private static _CopyStyles; } } declare module "babylonjs-gui-editor/guiEditor" { import { Observable } from "babylonjs/Misc/observable"; /** * Interface used to specify creation options for the gui editor */ export interface IGUIEditorOptions { hostElement?: HTMLElement; customSave?: { label: string; action: (data: string) => Promise; }; customLoadObservable?: Observable; } /** * Class used to create a gui editor */ export class GUIEditor { private static _CurrentState; /** * Show the gui editor * @param options defines the options to use to configure the gui editor */ static Show(options: IGUIEditorOptions): void; } } declare module "babylonjs-gui-editor/index" { export * from "babylonjs-gui-editor/guiEditor"; } declare module "babylonjs-gui-editor/legacy/legacy" { export * from "babylonjs-gui-editor/index"; } declare module "babylonjs-gui-editor/sharedComponents/lineWithFileButtonComponent" { import * as React from "react"; interface ILineWithFileButtonComponentProps { title: string; closed?: boolean; label: string; iconImage: any; onIconClick: (file: File) => void; accept: string; uploadName?: string; } export class LineWithFileButtonComponent extends React.Component { private uploadRef; constructor(props: ILineWithFileButtonComponentProps); onChange(evt: any): void; switchExpandedState(): void; render(): JSX.Element; } } declare module "babylonjs-gui-editor/sharedComponents/textInputLineComponent" { import * as React from "react"; import { Observable } from "babylonjs/Misc/observable"; import { PropertyChangedEvent } from "babylonjs-gui-editor/sharedComponents/propertyChangedEvent"; import { GlobalState } from "babylonjs-gui-editor/globalState"; interface ITextInputLineComponentProps { label: string; globalState: GlobalState; target?: any; propertyName?: string; value?: string; multilines?: boolean; onChange?: (value: string) => void; validator?: (value: string) => boolean; onPropertyChangedObservable?: Observable; } export class TextInputLineComponent extends React.Component { private _localChange; constructor(props: ITextInputLineComponentProps); shouldComponentUpdate(nextProps: ITextInputLineComponentProps, nextState: { value: string; }): boolean; raiseOnPropertyChanged(newValue: string, previousValue: string): void; updateValue(value: string, raisePropertyChanged: boolean): void; render(): JSX.Element; } } declare module "babylonjs-gui-editor/sharedUiComponents/colorPicker/colorComponentEntry" { import * as React from "react"; export interface IColorComponentEntryProps { value: number; label: string; max?: number; min?: number; onChange: (value: number) => void; } export class ColorComponentEntry extends React.Component { constructor(props: IColorComponentEntryProps); updateValue(valueString: string): void; render(): JSX.Element; } } declare module "babylonjs-gui-editor/sharedUiComponents/colorPicker/hexColor" { import * as React from "react"; export interface IHexColorProps { value: string; expectedLength: number; onChange: (value: string) => void; } export class HexColor extends React.Component { constructor(props: IHexColorProps); shouldComponentUpdate(nextProps: IHexColorProps, nextState: { hex: string; }): boolean; updateHexValue(valueString: string): void; render(): JSX.Element; } } declare module "babylonjs-gui-editor/sharedUiComponents/colorPicker/colorPicker" { import * as React from "react"; import { Color3, Color4 } from "babylonjs/Maths/math.color"; /** * Interface used to specify creation options for color picker */ export interface IColorPickerProps { color: Color3 | Color4; debugMode?: boolean; onColorChanged?: (color: Color3 | Color4) => void; } /** * Interface used to specify creation options for color picker */ export interface IColorPickerState { color: Color3; alpha: number; } /** * Class used to create a color picker */ export class ColorPicker extends React.Component { private _saturationRef; private _hueRef; private _isSaturationPointerDown; private _isHuePointerDown; constructor(props: IColorPickerProps); onSaturationPointerDown(evt: React.PointerEvent): void; onSaturationPointerUp(evt: React.PointerEvent): void; onSaturationPointerMove(evt: React.PointerEvent): void; onHuePointerDown(evt: React.PointerEvent): void; onHuePointerUp(evt: React.PointerEvent): void; onHuePointerMove(evt: React.PointerEvent): void; private _evaluateSaturation; private _evaluateHue; componentDidUpdate(): void; raiseOnColorChanged(): void; render(): JSX.Element; } } declare module "babylonjs-gui-editor/sharedUiComponents/lines/booleanLineComponent" { import * as React from "react"; export interface IBooleanLineComponentProps { label: string; value: boolean; } export class BooleanLineComponent extends React.Component { constructor(props: IBooleanLineComponentProps); render(): JSX.Element; } } declare module "babylonjs-gui-editor/sharedUiComponents/lines/numericInputComponent" { import * as React from "react"; interface INumericInputComponentProps { label: string; value: number; step?: number; onChange: (value: number) => void; precision?: number; } export class NumericInputComponent extends React.Component { static defaultProps: { step: number; }; private _localChange; constructor(props: INumericInputComponentProps); shouldComponentUpdate(nextProps: INumericInputComponentProps, nextState: { value: string; }): boolean; updateValue(evt: any): void; onBlur(): void; render(): JSX.Element; } } declare module "babylonjs-gui-editor/sharedUiComponents/lines/colorPickerComponent" { import * as React from "react"; import { Color4, Color3 } from 'babylonjs/Maths/math.color'; export interface IColorPickerComponentProps { value: Color4 | Color3; onColorChanged: (newOne: string) => void; } interface IColorPickerComponentState { pickerEnabled: boolean; color: Color3 | Color4; hex: string; } export class ColorPickerLineComponent extends React.Component { private _floatRef; private _floatHostRef; constructor(props: IColorPickerComponentProps); syncPositions(): void; shouldComponentUpdate(nextProps: IColorPickerComponentProps, nextState: IColorPickerComponentState): boolean; componentDidUpdate(): void; componentDidMount(): void; render(): JSX.Element; } } declare module "babylonjs-gui-editor/sharedUiComponents/lines/color3LineComponent" { import * as React from "react"; import { Observable } from "babylonjs/Misc/observable"; import { PropertyChangedEvent } from "babylonjs-gui-editor/sharedUiComponents/propertyChangedEvent"; import { Color3 } from 'babylonjs/Maths/math.color'; export interface IColor3LineComponentProps { label: string; target: any; propertyName: string; onPropertyChangedObservable?: Observable; isLinear?: boolean; } export class Color3LineComponent extends React.Component { private _localChange; constructor(props: IColor3LineComponentProps); shouldComponentUpdate(nextProps: IColor3LineComponentProps, nextState: { color: Color3; }): boolean; setPropertyValue(newColor: Color3): void; onChange(newValue: string): void; switchExpandState(): void; raiseOnPropertyChanged(previousValue: Color3): void; updateStateR(value: number): void; updateStateG(value: number): void; updateStateB(value: number): void; copyToClipboard(): void; render(): JSX.Element; } } declare module "babylonjs-gui-editor/sharedUiComponents/lines/color4LineComponent" { import * as React from "react"; import { Observable } from "babylonjs/Misc/observable"; import { Color4 } from "babylonjs/Maths/math.color"; import { PropertyChangedEvent } from "babylonjs-gui-editor/sharedUiComponents/propertyChangedEvent"; export interface IColor4LineComponentProps { label: string; target: any; propertyName: string; onPropertyChangedObservable?: Observable; onChange?: () => void; isLinear?: boolean; } export class Color4LineComponent extends React.Component { private _localChange; constructor(props: IColor4LineComponentProps); shouldComponentUpdate(nextProps: IColor4LineComponentProps, nextState: { color: Color4; }): boolean; setPropertyValue(newColor: Color4): void; onChange(newValue: string): void; switchExpandState(): void; raiseOnPropertyChanged(previousValue: Color4): void; updateStateR(value: number): void; updateStateG(value: number): void; updateStateB(value: number): void; updateStateA(value: number): void; copyToClipboard(): void; render(): JSX.Element; } } declare module "babylonjs-gui-editor/sharedUiComponents/lines/fileMultipleButtonLineComponent" { import * as React from "react"; interface IFileMultipleButtonLineComponentProps { label: string; onClick: (event: any) => void; accept: string; } export class FileMultipleButtonLineComponent extends React.Component { private static _IDGenerator; private _id; private uploadInputRef; constructor(props: IFileMultipleButtonLineComponentProps); onChange(evt: any): void; render(): JSX.Element; } } declare module "babylonjs-gui-editor/sharedUiComponents/tabs/propertyGrids/lockObject" { /** * Class used to provide lock mechanism */ export class LockObject { /** * Gets or set if the lock is engaged */ lock: boolean; } } declare module "babylonjs-gui-editor/sharedUiComponents/lines/sliderLineComponent" { import * as React from "react"; import { Observable } from "babylonjs/Misc/observable"; import { PropertyChangedEvent } from "babylonjs-gui-editor/sharedUiComponents/propertyChangedEvent"; interface ISliderLineComponentProps { label: string; target?: any; propertyName?: string; minimum: number; maximum: number; step: number; directValue?: number; useEuler?: boolean; onChange?: (value: number) => void; onInput?: (value: number) => void; onPropertyChangedObservable?: Observable; decimalCount?: number; margin?: boolean; } export class SliderLineComponent extends React.Component { private _localChange; constructor(props: ISliderLineComponentProps); shouldComponentUpdate(nextProps: ISliderLineComponentProps, nextState: { value: number; }): boolean; onChange(newValueString: any): void; onInput(newValueString: any): void; prepareDataToRead(value: number): number; render(): JSX.Element; } } declare module "babylonjs-gui-editor/sharedUiComponents/lines/floatLineComponent" { import * as React from "react"; import { Observable } from "babylonjs/Misc/observable"; import { PropertyChangedEvent } from "babylonjs-gui-editor/sharedUiComponents/propertyChangedEvent"; import { LockObject } from "babylonjs-gui-editor/sharedUiComponents/tabs/propertyGrids/lockObject"; interface IFloatLineComponentProps { label: string; target: any; propertyName: string; lockObject?: LockObject; onChange?: (newValue: number) => void; isInteger?: boolean; onPropertyChangedObservable?: Observable; additionalClass?: string; step?: string; digits?: number; useEuler?: boolean; min?: number; max?: number; smallUI?: boolean; onEnter?: (newValue: number) => void; } export class FloatLineComponent extends React.Component { private _localChange; private _store; constructor(props: IFloatLineComponentProps); componentWillUnmount(): void; shouldComponentUpdate(nextProps: IFloatLineComponentProps, nextState: { value: string; }): boolean; raiseOnPropertyChanged(newValue: number, previousValue: number): void; updateValue(valueString: string): void; lock(): void; unlock(): void; render(): JSX.Element; } } declare module "babylonjs-gui-editor/sharedUiComponents/lines/hexLineComponent" { import * as React from "react"; import { Observable } from "babylonjs/Misc/observable"; import { PropertyChangedEvent } from "babylonjs-gui-editor/sharedUiComponents/propertyChangedEvent"; import { LockObject } from "babylonjs-gui-editor/sharedUiComponents/tabs/propertyGrids/lockObject"; interface IHexLineComponentProps { label: string; target: any; propertyName: string; lockObject?: LockObject; onChange?: (newValue: number) => void; isInteger?: boolean; replaySourceReplacement?: string; onPropertyChangedObservable?: Observable; additionalClass?: string; step?: string; digits?: number; useEuler?: boolean; min?: number; } export class HexLineComponent extends React.Component { private _localChange; private _store; private _propertyChange; constructor(props: IHexLineComponentProps); componentWillUnmount(): void; shouldComponentUpdate(nextProps: IHexLineComponentProps, nextState: { value: string; }): boolean; raiseOnPropertyChanged(newValue: number, previousValue: number): void; convertToHexString(valueString: string): string; updateValue(valueString: string, raisePropertyChanged: boolean): void; lock(): void; unlock(): void; render(): JSX.Element; } } declare module "babylonjs-gui-editor/sharedUiComponents/lines/iconButtonLineComponent" { import * as React from 'react'; export interface IIconButtonLineComponentProps { icon: string; onClick: () => void; tooltip: string; active?: boolean; } export class IconButtonLineComponent extends React.Component { constructor(props: IIconButtonLineComponentProps); render(): JSX.Element; } } declare module "babylonjs-gui-editor/sharedUiComponents/lines/indentedTextLineComponent" { import * as React from "react"; interface IIndentedTextLineComponentProps { value?: string; color?: string; underline?: boolean; onLink?: () => void; url?: string; additionalClass?: string; } export class IndentedTextLineComponent extends React.Component { constructor(props: IIndentedTextLineComponentProps); onLink(): void; renderContent(): JSX.Element; render(): JSX.Element; } } declare module "babylonjs-gui-editor/sharedUiComponents/lines/linkButtonComponent" { import * as React from "react"; interface ILinkButtonComponentProps { label: string; buttonLabel: string; url?: string; onClick: () => void; onIconClick?: () => void; } export class LinkButtonComponent extends React.Component { constructor(props: ILinkButtonComponentProps); onLink(): void; render(): JSX.Element; } } declare module "babylonjs-gui-editor/sharedUiComponents/lines/messageLineComponent" { import * as React from "react"; interface IMessageLineComponentProps { text: string; color?: string; } export class MessageLineComponent extends React.Component { constructor(props: IMessageLineComponentProps); render(): JSX.Element; } } declare module "babylonjs-gui-editor/sharedUiComponents/lines/optionsLineComponent" { import * as React from "react"; import { Observable } from "babylonjs/Misc/observable"; import { PropertyChangedEvent } from "babylonjs-gui-editor/sharedUiComponents/propertyChangedEvent"; export const Null_Value: number; export class ListLineOption { label: string; value: number; selected?: boolean; } export interface IOptionsLineComponentProps { label: string; target: any; propertyName: string; options: ListLineOption[]; noDirectUpdate?: boolean; onSelect?: (value: number) => void; extractValue?: () => number; onPropertyChangedObservable?: Observable; allowNullValue?: boolean; } export class OptionsLineComponent extends React.Component { private _localChange; private remapValueIn; private remapValueOut; constructor(props: IOptionsLineComponentProps); shouldComponentUpdate(nextProps: IOptionsLineComponentProps, nextState: { value: number; }): boolean; raiseOnPropertyChanged(newValue: number, previousValue: number): void; updateValue(valueString: string): void; render(): JSX.Element; } } declare module "babylonjs-gui-editor/sharedUiComponents/lines/radioLineComponent" { import * as React from "react"; import { Observable } from "babylonjs/Misc/observable"; interface IRadioButtonLineComponentProps { onSelectionChangedObservable: Observable; label: string; isSelected: () => boolean; onSelect: () => void; } export class RadioButtonLineComponent extends React.Component { private _onSelectionChangedObserver; constructor(props: IRadioButtonLineComponentProps); componentDidMount(): void; componentWillUnmount(): void; onChange(): void; render(): JSX.Element; } } declare module "babylonjs-gui-editor/sharedUiComponents/lines/textInputLineComponent" { import * as React from "react"; import { Observable } from "babylonjs/Misc/observable"; import { PropertyChangedEvent } from "babylonjs-gui-editor/sharedUiComponents/propertyChangedEvent"; import { LockObject } from "babylonjs-gui-editor/sharedUiComponents/tabs/propertyGrids/lockObject"; interface ITextInputLineComponentProps { label: string; lockObject: LockObject; target?: any; propertyName?: string; value?: string; onChange?: (value: string) => void; onPropertyChangedObservable?: Observable; } export class TextInputLineComponent extends React.Component { private _localChange; constructor(props: ITextInputLineComponentProps); componentWillUnmount(): void; shouldComponentUpdate(nextProps: ITextInputLineComponentProps, nextState: { value: string; }): boolean; raiseOnPropertyChanged(newValue: string, previousValue: string): void; updateValue(value: string): void; render(): JSX.Element; } } declare module "babylonjs-gui-editor/sharedUiComponents/lines/valueLineComponent" { import * as React from "react"; interface IValueLineComponentProps { label: string; value: number; color?: string; fractionDigits?: number; units?: string; } export class ValueLineComponent extends React.Component { constructor(props: IValueLineComponentProps); render(): JSX.Element; } } declare module "babylonjs-gui-editor/sharedUiComponents/lines/vector2LineComponent" { import * as React from "react"; import { Vector2 } from "babylonjs/Maths/math.vector"; import { Observable } from "babylonjs/Misc/observable"; import { PropertyChangedEvent } from "babylonjs-gui-editor/sharedUiComponents/propertyChangedEvent"; interface IVector2LineComponentProps { label: string; target: any; propertyName: string; step?: number; onChange?: (newvalue: Vector2) => void; onPropertyChangedObservable?: Observable; } export class Vector2LineComponent extends React.Component { static defaultProps: { step: number; }; private _localChange; constructor(props: IVector2LineComponentProps); shouldComponentUpdate(nextProps: IVector2LineComponentProps, nextState: { isExpanded: boolean; value: Vector2; }): boolean; switchExpandState(): void; raiseOnPropertyChanged(previousValue: Vector2): void; updateStateX(value: number): void; updateStateY(value: number): void; render(): JSX.Element; } } declare module "babylonjs-gui-editor/sharedUiComponents/lines/vector3LineComponent" { import * as React from "react"; import { Vector3 } from "babylonjs/Maths/math.vector"; import { Observable } from "babylonjs/Misc/observable"; import { PropertyChangedEvent } from "babylonjs-gui-editor/sharedUiComponents/propertyChangedEvent"; interface IVector3LineComponentProps { label: string; target: any; propertyName: string; step?: number; onChange?: (newvalue: Vector3) => void; useEuler?: boolean; onPropertyChangedObservable?: Observable; noSlider?: boolean; } export class Vector3LineComponent extends React.Component { static defaultProps: { step: number; }; private _localChange; constructor(props: IVector3LineComponentProps); getCurrentValue(): any; shouldComponentUpdate(nextProps: IVector3LineComponentProps, nextState: { isExpanded: boolean; value: Vector3; }): boolean; switchExpandState(): void; raiseOnPropertyChanged(previousValue: Vector3): void; updateVector3(): void; updateStateX(value: number): void; updateStateY(value: number): void; updateStateZ(value: number): void; render(): JSX.Element; } } declare module "babylonjs-gui-editor/sharedUiComponents/lines/vector4LineComponent" { import * as React from "react"; import { Vector4 } from "babylonjs/Maths/math.vector"; import { Observable } from "babylonjs/Misc/observable"; import { PropertyChangedEvent } from "babylonjs-gui-editor/sharedUiComponents/propertyChangedEvent"; interface IVector4LineComponentProps { label: string; target: any; propertyName: string; step?: number; onChange?: (newvalue: Vector4) => void; useEuler?: boolean; onPropertyChangedObservable?: Observable; } export class Vector4LineComponent extends React.Component { static defaultProps: { step: number; }; private _localChange; constructor(props: IVector4LineComponentProps); getCurrentValue(): any; shouldComponentUpdate(nextProps: IVector4LineComponentProps, nextState: { isExpanded: boolean; value: Vector4; }): boolean; switchExpandState(): void; raiseOnPropertyChanged(previousValue: Vector4): void; updateVector4(): void; updateStateX(value: number): void; updateStateY(value: number): void; updateStateZ(value: number): void; updateStateW(value: number): void; render(): JSX.Element; } } declare module "babylonjs-gui-editor" { export * from "babylonjs-gui-editor/legacy/legacy"; } /// declare module GUIEDITOR { interface ILogComponentProps { globalState: GlobalState; } export class LogEntry { message: string; isError: boolean; constructor(message: string, isError: boolean); } export class LogComponent extends React.Component { constructor(props: ILogComponentProps); componentDidMount(): void; componentDidUpdate(): void; render(): JSX.Element; } } declare module GUIEDITOR { export interface IWorkbenchComponentProps { globalState: GlobalState; } export type FramePortData = {}; export const isFramePortData: (variableToCheck: any) => variableToCheck is FramePortData; export class WorkbenchComponent extends React.Component { private readonly MinZoom; private readonly MaxZoom; private _hostCanvas; private _gridCanvas; private _selectionContainer; private _frameContainer; private _svgCanvas; private _rootContainer; private _guiNodes; private _mouseStartPointX; private _mouseStartPointY; private _selectionStartX; private _selectionStartY; private _x; private _y; private _zoom; private _selectedGuiNodes; private _gridSize; private _selectionBox; private _frameCandidate; private _altKeyIsPressed; private _ctrlKeyIsPressed; private _oldY; _frameIsMoving: boolean; _isLoading: boolean; isOverGUINode: boolean; get gridSize(): number; set gridSize(value: number); get globalState(): GlobalState; get nodes(): GUINode[]; get zoom(): number; set zoom(value: number); get x(): number; set x(value: number); get y(): number; set y(value: number); get selectedGuiNodes(): GUINode[]; get canvasContainer(): HTMLDivElement; get hostCanvas(): HTMLDivElement; get svgCanvas(): HTMLElement; get selectionContainer(): HTMLDivElement; get frameContainer(): HTMLDivElement; constructor(props: IWorkbenchComponentProps); getGridPosition(position: number, useCeil?: boolean): number; getGridPositionCeil(position: number): number; updateTransform(): void; onKeyUp(): void; findNodeFromGuiElement(guiControl: Control): GUINode; reset(): void; appendBlock(guiElement: Control): GUINode; distributeGraph(): void; componentDidMount(): void; onMove(evt: React.PointerEvent): void; onDown(evt: React.PointerEvent): void; onUp(evt: React.PointerEvent): void; onWheel(evt: React.WheelEvent): void; zoomToFit(): void; createGUICanvas(): void; updateGUIs(): void; render(): JSX.Element; } } declare module GUIEDITOR { export interface IPropertyComponentProps { globalState: GlobalState; guiControl: Control; } } declare module GUIEDITOR { interface ILineContainerComponentProps { title: string; children: any[] | any; closed?: boolean; } export class LineContainerComponent extends React.Component { constructor(props: ILineContainerComponentProps); switchExpandedState(): void; renderHeader(): JSX.Element; render(): JSX.Element; } } declare module GUIEDITOR { export class PropertyChangedEvent { object: any; property: string; value: any; initialValue: any; allowNullValue?: boolean; } } declare module GUIEDITOR { export interface ICheckBoxLineComponentProps { label: string; target?: any; propertyName?: string; isSelected?: () => boolean; onSelect?: (value: boolean) => void; onValueChanged?: () => void; onPropertyChangedObservable?: BABYLON.Observable; disabled?: boolean; } export class CheckBoxLineComponent extends React.Component { private static _UniqueIdSeed; private _uniqueId; private _localChange; constructor(props: ICheckBoxLineComponentProps); shouldComponentUpdate(nextProps: ICheckBoxLineComponentProps, nextState: { isSelected: boolean; isDisabled: boolean; }): boolean; onChange(): void; render(): JSX.Element; } } declare module GUIEDITOR { export class PropertyChangedEvent { object: any; property: string; value: any; initialValue: any; } } declare module GUIEDITOR { interface IFloatLineComponentProps { label: string; target: any; propertyName: string; onChange?: (newValue: number) => void; isInteger?: boolean; onPropertyChangedObservable?: BABYLON.Observable; additionalClass?: string; step?: string; digits?: number; globalState: GlobalState; min?: number; max?: number; smallUI?: boolean; onEnter?: (newValue: number) => void; } export class FloatLineComponent extends React.Component { private _localChange; private _store; private _regExp; private _digits; constructor(props: IFloatLineComponentProps); shouldComponentUpdate(nextProps: IFloatLineComponentProps, nextState: { value: string; }): boolean; raiseOnPropertyChanged(newValue: number, previousValue: number): void; updateValue(valueString: string): void; render(): JSX.Element; } } declare module GUIEDITOR { interface ISliderLineComponentProps { label: string; target?: any; propertyName?: string; minimum: number; maximum: number; step: number; directValue?: number; useEuler?: boolean; onChange?: (value: number) => void; onInput?: (value: number) => void; onPropertyChangedObservable?: BABYLON.Observable; decimalCount?: number; globalState: GlobalState; } export class SliderLineComponent extends React.Component { private _localChange; constructor(props: ISliderLineComponentProps); shouldComponentUpdate(nextProps: ISliderLineComponentProps, nextState: { value: number; }): boolean; onChange(newValueString: any): void; onInput(newValueString: any): void; prepareDataToRead(value: number): number; render(): JSX.Element; } } declare module GUIEDITOR { export class GenericPropertyComponent extends React.Component { constructor(props: IPropertyComponentProps); render(): JSX.Element; } export class GeneralPropertyTabComponent extends React.Component { constructor(props: IPropertyComponentProps); render(): JSX.Element; } export class GenericPropertyTabComponent extends React.Component { constructor(props: IPropertyComponentProps); forceRebuild(notifiers?: { "rebuild"?: boolean; "update"?: boolean; }): void; render(): JSX.Element; } } declare module GUIEDITOR { interface INumericInputComponentProps { label: string; value: number; step?: number; onChange: (value: number) => void; globalState: GlobalState; } export class NumericInputComponent extends React.Component { static defaultProps: { step: number; }; private _localChange; constructor(props: INumericInputComponentProps); shouldComponentUpdate(nextProps: INumericInputComponentProps, nextState: { value: string; }): boolean; updateValue(evt: any): void; render(): JSX.Element; } } declare module GUIEDITOR { interface ITextLineComponentProps { label?: string; value?: string; color?: string; underline?: boolean; onLink?: () => void; url?: string; ignoreValue?: boolean; additionalClass?: string; } export class TextLineComponent extends React.Component { constructor(props: ITextLineComponentProps); onLink(): void; renderContent(): JSX.Element | null; render(): JSX.Element; } } declare module GUIEDITOR { export class SliderPropertyTabComponent extends React.Component { constructor(props: IPropertyComponentProps); private _slider; render(): JSX.Element; } } declare module GUIEDITOR { export class PropertyGuiLedger { static RegisteredControls: { [key: string]: React.ComponentClass; }; } } declare module GUIEDITOR { export class GUINode { guiControl: Control; private _x; private _y; private _gridAlignedX; private _gridAlignedY; private _globalState; private _onSelectionChangedObserver; private _onSelectionBoxMovedObserver; private _onUpdateRequiredObserver; private _ownerCanvas; private _isSelected; private _isVisible; private _enclosingFrameId; get isVisible(): boolean; set isVisible(value: boolean); get gridAlignedX(): number; get gridAlignedY(): number; get x(): number; set x(value: number); get y(): number; set y(value: number); get width(): number; get height(): number; get id(): number; get name(): string | undefined; get isSelected(): boolean; get enclosingFrameId(): number; set enclosingFrameId(value: number); set isSelected(value: boolean); constructor(globalState: GlobalState, guiControl: Control); cleanAccumulation(useCeil?: boolean): void; clicked: boolean; _onMove(evt: BABYLON.Vector2, startPos: BABYLON.Vector2): boolean; renderProperties(): BABYLON.Nullable; updateVisual(): void; dispose(): void; } } declare module GUIEDITOR { export class GlobalState { guiTexture: AdvancedDynamicTexture; hostElement: HTMLElement; hostDocument: HTMLDocument; hostWindow: Window; onSelectionChangedObservable: BABYLON.Observable>; onRebuildRequiredObservable: BABYLON.Observable; onBuiltObservable: BABYLON.Observable; onResetRequiredObservable: BABYLON.Observable; onUpdateRequiredObservable: BABYLON.Observable; onReOrganizedRequiredObservable: BABYLON.Observable; onLogRequiredObservable: BABYLON.Observable; onErrorMessageDialogRequiredObservable: BABYLON.Observable; onIsLoadingChanged: BABYLON.Observable; onSelectionBoxMoved: BABYLON.Observable; onGuiNodeRemovalObservable: BABYLON.Observable; backgroundColor: BABYLON.Color4; blockKeyboardEvents: boolean; controlCamera: boolean; workbench: WorkbenchComponent; storeEditorData: (serializationObject: any) => void; customSave?: { label: string; action: (data: string) => Promise; }; constructor(); } } declare module GUIEDITOR { export interface IButtonLineComponentProps { data: string; tooltip: string; } export class DraggableLineComponent extends React.Component { constructor(props: IButtonLineComponentProps); render(): JSX.Element; } } declare module GUIEDITOR { interface IGuiListComponentProps { globalState: GlobalState; } export class GuiListComponent extends React.Component { private _onResetRequiredObserver; private static _Tooltips; constructor(props: IGuiListComponentProps); componentWillUnmount(): void; filterContent(filter: string): void; render(): JSX.Element; } } declare module GUIEDITOR { export interface IButtonLineComponentProps { label: string; onClick: () => void; } export class ButtonLineComponent extends React.Component { constructor(props: IButtonLineComponentProps); render(): JSX.Element; } } declare module GUIEDITOR { interface IFileButtonLineComponentProps { label: string; onClick: (file: File) => void; accept: string; } export class FileButtonLineComponent extends React.Component { private static _IDGenerator; private _id; private uploadInputRef; constructor(props: IFileButtonLineComponentProps); onChange(evt: any): void; render(): JSX.Element; } } declare module GUIEDITOR { export class SerializationTools { static Deserialize(serializationObject: any, globalState: GlobalState): void; } } declare module GUIEDITOR { interface IPropertyTabComponentProps { globalState: GlobalState; } interface IPropertyTabComponentState { currentNode: BABYLON.Nullable; } export class PropertyTabComponent extends React.Component { private _onBuiltObserver; constructor(props: IPropertyTabComponentProps); componentDidMount(): void; componentWillUnmount(): void; load(file: File): void; loadFrame(file: File): void; save(): void; customSave(): void; saveToSnippetServer(): void; loadFromSnippet(): void; render(): JSX.Element; } } declare module GUIEDITOR { interface IPortalProps { globalState: GlobalState; } export class Portal extends React.Component { render(): React.ReactPortal; } } declare module GUIEDITOR { export class GUINodeTools { static CreateControlFromString(data: string): Slider | Checkbox | ColorPicker | Ellipse | Rectangle | Line | TextBlock; } } declare module GUIEDITOR { export interface INodeLocationInfo { blockId: number; x: number; y: number; } export interface IFrameData { x: number; y: number; width: number; height: number; color: number[]; name: string; isCollapsed: boolean; blocks: number[]; comments: string; } export interface IEditorData { locations: INodeLocationInfo[]; x: number; y: number; zoom: number; frames?: IFrameData[]; map?: { [key: number]: number; }; } } declare module GUIEDITOR { interface IMessageDialogComponentProps { globalState: GlobalState; } export class MessageDialogComponent extends React.Component { constructor(props: IMessageDialogComponentProps); render(): JSX.Element | null; } } declare module GUIEDITOR { interface IGraphEditorProps { globalState: GlobalState; } interface IGraphEditorState { showPreviewPopUp: boolean; } export class WorkbenchEditor extends React.Component { private _workbenchCanvas; private _startX; private _moveInProgress; private _leftWidth; private _rightWidth; private _blocks; private _onWidgetKeyUpPointer; private _popUpWindow; /** * Creates a node and recursivly creates its parent nodes from it's input * @param block */ createNodeFromObject(block: Control, recursion?: boolean): BABYLON.Nullable; componentDidMount(): void; componentWillUnmount(): void; constructor(props: IGraphEditorProps); pasteSelection(copiedNodes: GUINode[], currentX: number, currentY: number, selectNew?: boolean): GUINode[]; zoomToFit(): void; showWaitScreen(): void; hideWaitScreen(): void; reOrganize(editorData?: BABYLON.Nullable, isImportingAFrame?: boolean): void; onPointerDown(evt: React.PointerEvent): void; onPointerUp(evt: React.PointerEvent): void; resizeColumns(evt: React.PointerEvent, forLeft?: boolean): void; buildColumnLayout(): string; emitNewBlock(event: React.DragEvent): void; handlePopUp: () => void; handleClosingPopUp: () => void; createPopupWindow: (title: string, windowVariableName: string, width?: number, height?: number) => Window | null; copyStyles: (sourceDoc: HTMLDocument, targetDoc: HTMLDocument) => void; fixPopUpStyles: (document: Document) => void; render(): JSX.Element; } } declare module GUIEDITOR { export class Popup { static CreatePopup(title: string, windowVariableName: string, width?: number, height?: number): HTMLDivElement | null; private static _CopyStyles; } } declare module GUIEDITOR { /** * Interface used to specify creation options for the gui editor */ export interface IGUIEditorOptions { hostElement?: HTMLElement; customSave?: { label: string; action: (data: string) => Promise; }; customLoadObservable?: BABYLON.Observable; } /** * Class used to create a gui editor */ export class GUIEditor { private static _CurrentState; /** * Show the gui editor * @param options defines the options to use to configure the gui editor */ static Show(options: IGUIEditorOptions): void; } } declare module GUIEDITOR { interface ILineWithFileButtonComponentProps { title: string; closed?: boolean; label: string; iconImage: any; onIconClick: (file: File) => void; accept: string; uploadName?: string; } export class LineWithFileButtonComponent extends React.Component { private uploadRef; constructor(props: ILineWithFileButtonComponentProps); onChange(evt: any): void; switchExpandedState(): void; render(): JSX.Element; } } declare module GUIEDITOR { interface ITextInputLineComponentProps { label: string; globalState: GlobalState; target?: any; propertyName?: string; value?: string; multilines?: boolean; onChange?: (value: string) => void; validator?: (value: string) => boolean; onPropertyChangedObservable?: BABYLON.Observable; } export class TextInputLineComponent extends React.Component { private _localChange; constructor(props: ITextInputLineComponentProps); shouldComponentUpdate(nextProps: ITextInputLineComponentProps, nextState: { value: string; }): boolean; raiseOnPropertyChanged(newValue: string, previousValue: string): void; updateValue(value: string, raisePropertyChanged: boolean): void; render(): JSX.Element; } } declare module GUIEDITOR { export interface IColorComponentEntryProps { value: number; label: string; max?: number; min?: number; onChange: (value: number) => void; } export class ColorComponentEntry extends React.Component { constructor(props: IColorComponentEntryProps); updateValue(valueString: string): void; render(): JSX.Element; } } declare module GUIEDITOR { export interface IHexColorProps { value: string; expectedLength: number; onChange: (value: string) => void; } export class HexColor extends React.Component { constructor(props: IHexColorProps); shouldComponentUpdate(nextProps: IHexColorProps, nextState: { hex: string; }): boolean; updateHexValue(valueString: string): void; render(): JSX.Element; } } declare module GUIEDITOR { /** * Interface used to specify creation options for color picker */ export interface IColorPickerProps { color: BABYLON.Color3 | BABYLON.Color4; debugMode?: boolean; onColorChanged?: (color: BABYLON.Color3 | BABYLON.Color4) => void; } /** * Interface used to specify creation options for color picker */ export interface IColorPickerState { color: BABYLON.Color3; alpha: number; } /** * Class used to create a color picker */ export class ColorPicker extends React.Component { private _saturationRef; private _hueRef; private _isSaturationPointerDown; private _isHuePointerDown; constructor(props: IColorPickerProps); onSaturationPointerDown(evt: React.PointerEvent): void; onSaturationPointerUp(evt: React.PointerEvent): void; onSaturationPointerMove(evt: React.PointerEvent): void; onHuePointerDown(evt: React.PointerEvent): void; onHuePointerUp(evt: React.PointerEvent): void; onHuePointerMove(evt: React.PointerEvent): void; private _evaluateSaturation; private _evaluateHue; componentDidUpdate(): void; raiseOnColorChanged(): void; render(): JSX.Element; } } declare module GUIEDITOR { export interface IBooleanLineComponentProps { label: string; value: boolean; } export class BooleanLineComponent extends React.Component { constructor(props: IBooleanLineComponentProps); render(): JSX.Element; } } declare module GUIEDITOR { interface INumericInputComponentProps { label: string; value: number; step?: number; onChange: (value: number) => void; precision?: number; } export class NumericInputComponent extends React.Component { static defaultProps: { step: number; }; private _localChange; constructor(props: INumericInputComponentProps); shouldComponentUpdate(nextProps: INumericInputComponentProps, nextState: { value: string; }): boolean; updateValue(evt: any): void; onBlur(): void; render(): JSX.Element; } } declare module GUIEDITOR { export interface IColorPickerComponentProps { value: BABYLON.Color4 | BABYLON.Color3; onColorChanged: (newOne: string) => void; } interface IColorPickerComponentState { pickerEnabled: boolean; color: BABYLON.Color3 | BABYLON.Color4; hex: string; } export class ColorPickerLineComponent extends React.Component { private _floatRef; private _floatHostRef; constructor(props: IColorPickerComponentProps); syncPositions(): void; shouldComponentUpdate(nextProps: IColorPickerComponentProps, nextState: IColorPickerComponentState): boolean; componentDidUpdate(): void; componentDidMount(): void; render(): JSX.Element; } } declare module GUIEDITOR { export interface IColor3LineComponentProps { label: string; target: any; propertyName: string; onPropertyChangedObservable?: BABYLON.Observable; isLinear?: boolean; } export class Color3LineComponent extends React.Component { private _localChange; constructor(props: IColor3LineComponentProps); shouldComponentUpdate(nextProps: IColor3LineComponentProps, nextState: { color: BABYLON.Color3; }): boolean; setPropertyValue(newColor: BABYLON.Color3): void; onChange(newValue: string): void; switchExpandState(): void; raiseOnPropertyChanged(previousValue: BABYLON.Color3): void; updateStateR(value: number): void; updateStateG(value: number): void; updateStateB(value: number): void; copyToClipboard(): void; render(): JSX.Element; } } declare module GUIEDITOR { export interface IColor4LineComponentProps { label: string; target: any; propertyName: string; onPropertyChangedObservable?: BABYLON.Observable; onChange?: () => void; isLinear?: boolean; } export class Color4LineComponent extends React.Component { private _localChange; constructor(props: IColor4LineComponentProps); shouldComponentUpdate(nextProps: IColor4LineComponentProps, nextState: { color: BABYLON.Color4; }): boolean; setPropertyValue(newColor: BABYLON.Color4): void; onChange(newValue: string): void; switchExpandState(): void; raiseOnPropertyChanged(previousValue: BABYLON.Color4): void; updateStateR(value: number): void; updateStateG(value: number): void; updateStateB(value: number): void; updateStateA(value: number): void; copyToClipboard(): void; render(): JSX.Element; } } declare module GUIEDITOR { interface IFileMultipleButtonLineComponentProps { label: string; onClick: (event: any) => void; accept: string; } export class FileMultipleButtonLineComponent extends React.Component { private static _IDGenerator; private _id; private uploadInputRef; constructor(props: IFileMultipleButtonLineComponentProps); onChange(evt: any): void; render(): JSX.Element; } } declare module GUIEDITOR { /** * Class used to provide lock mechanism */ export class LockObject { /** * Gets or set if the lock is engaged */ lock: boolean; } } declare module GUIEDITOR { interface ISliderLineComponentProps { label: string; target?: any; propertyName?: string; minimum: number; maximum: number; step: number; directValue?: number; useEuler?: boolean; onChange?: (value: number) => void; onInput?: (value: number) => void; onPropertyChangedObservable?: BABYLON.Observable; decimalCount?: number; margin?: boolean; } export class SliderLineComponent extends React.Component { private _localChange; constructor(props: ISliderLineComponentProps); shouldComponentUpdate(nextProps: ISliderLineComponentProps, nextState: { value: number; }): boolean; onChange(newValueString: any): void; onInput(newValueString: any): void; prepareDataToRead(value: number): number; render(): JSX.Element; } } declare module GUIEDITOR { interface IFloatLineComponentProps { label: string; target: any; propertyName: string; lockObject?: LockObject; onChange?: (newValue: number) => void; isInteger?: boolean; onPropertyChangedObservable?: BABYLON.Observable; additionalClass?: string; step?: string; digits?: number; useEuler?: boolean; min?: number; max?: number; smallUI?: boolean; onEnter?: (newValue: number) => void; } export class FloatLineComponent extends React.Component { private _localChange; private _store; constructor(props: IFloatLineComponentProps); componentWillUnmount(): void; shouldComponentUpdate(nextProps: IFloatLineComponentProps, nextState: { value: string; }): boolean; raiseOnPropertyChanged(newValue: number, previousValue: number): void; updateValue(valueString: string): void; lock(): void; unlock(): void; render(): JSX.Element; } } declare module GUIEDITOR { interface IHexLineComponentProps { label: string; target: any; propertyName: string; lockObject?: LockObject; onChange?: (newValue: number) => void; isInteger?: boolean; replaySourceReplacement?: string; onPropertyChangedObservable?: BABYLON.Observable; additionalClass?: string; step?: string; digits?: number; useEuler?: boolean; min?: number; } export class HexLineComponent extends React.Component { private _localChange; private _store; private _propertyChange; constructor(props: IHexLineComponentProps); componentWillUnmount(): void; shouldComponentUpdate(nextProps: IHexLineComponentProps, nextState: { value: string; }): boolean; raiseOnPropertyChanged(newValue: number, previousValue: number): void; convertToHexString(valueString: string): string; updateValue(valueString: string, raisePropertyChanged: boolean): void; lock(): void; unlock(): void; render(): JSX.Element; } } declare module GUIEDITOR { export interface IIconButtonLineComponentProps { icon: string; onClick: () => void; tooltip: string; active?: boolean; } export class IconButtonLineComponent extends React.Component { constructor(props: IIconButtonLineComponentProps); render(): JSX.Element; } } declare module GUIEDITOR { interface IIndentedTextLineComponentProps { value?: string; color?: string; underline?: boolean; onLink?: () => void; url?: string; additionalClass?: string; } export class IndentedTextLineComponent extends React.Component { constructor(props: IIndentedTextLineComponentProps); onLink(): void; renderContent(): JSX.Element; render(): JSX.Element; } } declare module GUIEDITOR { interface ILinkButtonComponentProps { label: string; buttonLabel: string; url?: string; onClick: () => void; onIconClick?: () => void; } export class LinkButtonComponent extends React.Component { constructor(props: ILinkButtonComponentProps); onLink(): void; render(): JSX.Element; } } declare module GUIEDITOR { interface IMessageLineComponentProps { text: string; color?: string; } export class MessageLineComponent extends React.Component { constructor(props: IMessageLineComponentProps); render(): JSX.Element; } } declare module GUIEDITOR { export const Null_Value: number; export class ListLineOption { label: string; value: number; selected?: boolean; } export interface IOptionsLineComponentProps { label: string; target: any; propertyName: string; options: ListLineOption[]; noDirectUpdate?: boolean; onSelect?: (value: number) => void; extractValue?: () => number; onPropertyChangedObservable?: BABYLON.Observable; allowNullValue?: boolean; } export class OptionsLineComponent extends React.Component { private _localChange; private remapValueIn; private remapValueOut; constructor(props: IOptionsLineComponentProps); shouldComponentUpdate(nextProps: IOptionsLineComponentProps, nextState: { value: number; }): boolean; raiseOnPropertyChanged(newValue: number, previousValue: number): void; updateValue(valueString: string): void; render(): JSX.Element; } } declare module GUIEDITOR { interface IRadioButtonLineComponentProps { onSelectionChangedObservable: BABYLON.Observable; label: string; isSelected: () => boolean; onSelect: () => void; } export class RadioButtonLineComponent extends React.Component { private _onSelectionChangedObserver; constructor(props: IRadioButtonLineComponentProps); componentDidMount(): void; componentWillUnmount(): void; onChange(): void; render(): JSX.Element; } } declare module GUIEDITOR { interface ITextInputLineComponentProps { label: string; lockObject: LockObject; target?: any; propertyName?: string; value?: string; onChange?: (value: string) => void; onPropertyChangedObservable?: BABYLON.Observable; } export class TextInputLineComponent extends React.Component { private _localChange; constructor(props: ITextInputLineComponentProps); componentWillUnmount(): void; shouldComponentUpdate(nextProps: ITextInputLineComponentProps, nextState: { value: string; }): boolean; raiseOnPropertyChanged(newValue: string, previousValue: string): void; updateValue(value: string): void; render(): JSX.Element; } } declare module GUIEDITOR { interface IValueLineComponentProps { label: string; value: number; color?: string; fractionDigits?: number; units?: string; } export class ValueLineComponent extends React.Component { constructor(props: IValueLineComponentProps); render(): JSX.Element; } } declare module GUIEDITOR { interface IVector2LineComponentProps { label: string; target: any; propertyName: string; step?: number; onChange?: (newvalue: BABYLON.Vector2) => void; onPropertyChangedObservable?: BABYLON.Observable; } export class Vector2LineComponent extends React.Component { static defaultProps: { step: number; }; private _localChange; constructor(props: IVector2LineComponentProps); shouldComponentUpdate(nextProps: IVector2LineComponentProps, nextState: { isExpanded: boolean; value: BABYLON.Vector2; }): boolean; switchExpandState(): void; raiseOnPropertyChanged(previousValue: BABYLON.Vector2): void; updateStateX(value: number): void; updateStateY(value: number): void; render(): JSX.Element; } } declare module GUIEDITOR { interface IVector3LineComponentProps { label: string; target: any; propertyName: string; step?: number; onChange?: (newvalue: BABYLON.Vector3) => void; useEuler?: boolean; onPropertyChangedObservable?: BABYLON.Observable; noSlider?: boolean; } export class Vector3LineComponent extends React.Component { static defaultProps: { step: number; }; private _localChange; constructor(props: IVector3LineComponentProps); getCurrentValue(): any; shouldComponentUpdate(nextProps: IVector3LineComponentProps, nextState: { isExpanded: boolean; value: BABYLON.Vector3; }): boolean; switchExpandState(): void; raiseOnPropertyChanged(previousValue: BABYLON.Vector3): void; updateVector3(): void; updateStateX(value: number): void; updateStateY(value: number): void; updateStateZ(value: number): void; render(): JSX.Element; } } declare module GUIEDITOR { interface IVector4LineComponentProps { label: string; target: any; propertyName: string; step?: number; onChange?: (newvalue: BABYLON.Vector4) => void; useEuler?: boolean; onPropertyChangedObservable?: BABYLON.Observable; } export class Vector4LineComponent extends React.Component { static defaultProps: { step: number; }; private _localChange; constructor(props: IVector4LineComponentProps); getCurrentValue(): any; shouldComponentUpdate(nextProps: IVector4LineComponentProps, nextState: { isExpanded: boolean; value: BABYLON.Vector4; }): boolean; switchExpandState(): void; raiseOnPropertyChanged(previousValue: BABYLON.Vector4): void; updateVector4(): void; updateStateX(value: number): void; updateStateY(value: number): void; updateStateZ(value: number): void; updateStateW(value: number): void; render(): JSX.Element; } }