import ObservableObject from "../base/ObservableObject"; export interface DataSourceSchemaModel { id?: string; } export interface DataSourceSchemaModelWithFieldsArray extends DataSourceSchemaModel { fields?: DataSourceSchemaModelField[]; } export interface DataSourceSchemaModelWithFieldsObject extends DataSourceSchemaModel { fields?: DataSourceSchemaModelFields; } export interface DataSourceSchemaModelFields { [index: string]: DataSourceSchemaModelField; } export interface DataSourceSchemaModelField { field?: string; from?: string; defaultValue?: any; editable?: boolean; nullable?: boolean; parse?: Function; type?: string; validation?: any; } export interface DataSourceSchema { aggregates?: any; data?: any; errors?: any; groups?: any; parse?: Function; total?: any; model?: DataSourceSchemaModelWithFieldsArray | DataSourceSchemaModelWithFieldsObject | typeof Model; modelBase?: DataSourceSchemaModel | typeof Model; } export interface DataSourceSchemaWithOptionsModel extends DataSourceSchema { model?: DataSourceSchemaModel; } export interface Field { field?: string; defaultValue?: any; editable?: boolean; nullable?: boolean; parse?: Function; type?: 'string' | 'number' | 'boolean' | 'date' | 'object'; from?: string; validation: Object; } export declare class Model extends ObservableObject { static idField: string; static fields: DataSourceSchemaModelFields; static fn: any; idField: string; _defaultId: any; fields: DataSourceSchemaModelFields; defaults: { [field: string]: any; }; id: any; dirty: boolean; constructor(...args: any[]); __initProps(): void; init(data?: any, initialValue?: boolean): void; private _parse(fieldName, value); $editable(name: string): boolean; set(field: string, value: any, initiator?: any): boolean; accept(data: any): void; isNew(): boolean; static getId(data: any): string | number; static define(options?: DataSourceSchemaModelWithFieldsObject | DataSourceSchemaModelWithFieldsArray, base?: typeof Model): typeof Model; }