import * as DG from 'datagrok-api/dg'; import { Observable, Subject } from 'rxjs'; export declare class SchemaEditor extends DG.Widget { get type(): string; table: PropertyTable; allowedTypes: string[]; properties: DG.IProperty[]; extraPropertiesDiv: HTMLDivElement; extraProperties: string[]; constructor(options: { properties: DG.IProperty[]; extraPropertiesDiv?: HTMLDivElement; allowRemove?: boolean; extraProperties?: string[]; }); } export type TableFromPropertiesOptions = { items: T[]; mainProperties: DG.IProperty[]; extraProperties?: DG.IProperty[]; allowAdd?: boolean; allowRemove?: boolean; createNew?: () => T; }; export declare class PropertyTable extends DG.Widget { data: TableFromPropertiesOptions; get type(): string; table?: HTMLTableElement; onSelected: Subject; onItemChanged: Subject; onItemAdded: Subject; onItemRemoved: Subject; /** Any change (ItemChanged, ItemAdded, ItemRemoved) */ get onChanged(): Observable; constructor(data: TableFromPropertiesOptions); refresh(): void; } export declare class PropertyValidator { static NOT_EMPTY: string; static validators: { [name: string]: (value: any) => string | null; }; static getValidator(obj: any, prop: DG.IProperty, expression: string): ((value: any) => string | null); static registerValidator(name: string, validator: ((x: any) => string | null)): void; } //# sourceMappingURL=schema-editor.d.ts.map