import { IObservableValue } from "mobx";
import * as React from "react";
import { Color } from "three";
import { MaterialType } from "../../DatabaseServices/IMaterialDefaultParam";
import { PhysicalMaterialRecord } from "../../DatabaseServices/PhysicalMaterialRecord";
import { MaterialStore } from "../Store/MaterialStore";
export declare class Input extends React.Component<{
    value: IObservableValue<string | number>;
    disabled?: boolean;
}, {}> {
    inputEl: HTMLInputElement;
    dispose: Function;
    componentDidMount(): void;
    componentWillUnmount(): void;
    render(): JSX.Element;
}
export declare class ColorSelect extends React.Component<{
    color: IObservableValue<string>;
}, {}> {
    bSelectColor: boolean;
    handleClose: (e: React.MouseEvent<HTMLDivElement, MouseEvent>) => void;
    render(): JSX.Element;
}
export declare class LightDarkColor extends React.Component<{
    color: IObservableValue<Color>;
}, {}> {
    bSelectColor: boolean;
    handleClose: (e: React.MouseEvent<HTMLDivElement, MouseEvent>) => void;
    render(): JSX.Element;
}
export declare class Lable extends React.Component<{
    prompt: string;
    style?: React.CSSProperties;
    promptStyle?: React.CSSProperties;
}, {}> {
    render(): JSX.Element;
}
export declare class LableInput extends React.Component<{
    value: IObservableValue<string>;
    prompt: string;
    promptStyle?: React.CSSProperties;
}, {}> {
    render(): JSX.Element;
}
export declare class Check extends React.Component<{
    value: IObservableValue<boolean>;
    prompt: string;
    promptStyle?: React.CSSProperties;
}, {}> {
    inputEl: HTMLInputElement;
    dispose: Function;
    componentDidMount(): void;
    componentWillUnmount(): void;
    render(): JSX.Element;
}
export declare class Slider extends React.Component<{
    value: IObservableValue<number>;
    prompt: string;
    min: number;
    max: number;
    step: number;
}, {}> {
    inputEl: HTMLInputElement;
    inputSlider: HTMLInputElement;
    dispose: Function;
    componentDidMount(): void;
    componentWillUnmount(): void;
    render(): JSX.Element;
}
export declare class Select extends React.Component<{
    value: IObservableValue<any>;
    prompt: string;
    selects: {
        label: string;
        value: any;
    }[];
}, {}> {
    selectEl: HTMLSelectElement;
    dispose: Function;
    componentDidMount(): void;
    componentWillUnmount(): void;
    render(): JSX.Element;
}
export declare class Objects extends React.Component<{
    value: IObservableValue<any>;
    selects: {
        lable: string;
        value: any;
    }[];
    lable: string[];
}, {}> {
    render(): JSX.Element;
}
export declare class TypeSelect extends React.Component<{
    value: IObservableValue<MaterialType>;
    prompt: string;
    selects: MaterialType[];
    store: MaterialStore;
}, {}> {
    selectEl: HTMLSelectElement;
    dispose: Function;
    componentDidMount(): void;
    componentWillUnmount(): void;
    setMaterial: ((mtl: PhysicalMaterialRecord) => void) & import("mobx").IAction;
    setName: ((op: any) => void) & import("mobx").IAction;
    render(): JSX.Element;
}
export declare const WrapSelects: {
    label: string;
    value: import("three").Wrapping;
}[];
//# sourceMappingURL=MaterialCommon.d.ts.map