/** * @fileOverview * * Created on 5/21/16. * @author Siggi Orn */ import { Event, EventContainer } from 'jibo-typed-events'; import { Folder } from './Folder'; export declare type FieldType = (string | number | boolean); export declare type FieldTypeString = ('string' | 'number' | 'boolean' | 'button'); export declare class FieldEvents extends EventContainer { change: Event; constructor(); } export declare abstract class Field { folder: Folder; name: string; initial: ValidType; type: FieldTypeString; events: FieldEvents; protected _current: ValidType; protected _limitInput: (input: ValidType) => ValidType; constructor(folder: Folder, name: string, initial: ValidType, type: FieldTypeString); current: ValidType; _setCurrent(value: ValidType, fromRemote: boolean, noChange?: boolean): void; protected _updateRemote(): void; /** * Returns a basic representation of this element for serialization * @returns {any} */ toSimpleObject(): any; } export declare class StringField extends Field { initial: string; constructor(folder: Folder, name: string, initial?: string); } export declare class DropdownField extends Field { options: string[]; constructor(folder: Folder, name: string, options: string[], initialIndex?: number); } export declare class CheckboxField extends Field { initial: boolean; constructor(folder: Folder, name: string, initial?: boolean); } export declare class NumberField extends Field { initial: number; min: number; max: number; step: number; constructor(folder: Folder, name: string, initial: number, min: number, max: number, step?: number); } export declare class ButtonField extends Field { constructor(folder: Folder, name: string); press(): void; }