import * as React from 'react'; import { IBindableEditorProps } from './PropTypes'; import { Components } from '@singularsystems/neo-core'; import ComponentBase from './ComponentBase'; import { FormContext } from './FormContext'; type InputType = "text" | "password" | "checkbox" | "switch" | "tel" | "email"; export interface IInputSpecificProps { /** Type of input to use */ type?: InputType; /** Converts input into a textarea if the no of rows is above 1. */ rows?: number; /** Label for checkbox. */ label?: string | React.ReactNode; /** * Shows a button which allows the user to view the password characters. * Automatically sets type to 'password'. */ showPasswordButton?: boolean | Components.IButtonOptions; /** Alternate label, currently only used to provide a left label for the switch component. */ altLabel?: string | React.ReactNode; } export interface IInputProps extends IBindableEditorProps { input?: IInputSpecificProps; } export default class Input extends ComponentBase { static contextType: React.Context; context: React.ContextType; protected baseType?: InputType; private type; private domRef; private showPassword; constructor(props: IInputProps); private determineType; afterRender(): void; private onChanged; render(): React.JSX.Element; } export declare class Textbox extends Input { constructor(props: any); } export declare class Passwordbox extends Input { constructor(props: any); } export declare class Checkbox extends Input { constructor(props: any); } export {};