;
/**
* Populates model with attributes/properties from a json Object
*
* @param recordData json object whose properties will be used to populate the Data Model
*/
populateModelData(recordData: any): void;
extractModelData(): any;
/**
* Retrieves a list of records using a query string
*
* @param query the FourDQuery object that defines the query to be used for retrieving from 4D
* @param columns custom column list to retrieve, JSON array of the columns to retrieve. if informed, only the columns listed will be retrieved instead of the whole record
* @param startRec the starting record number to retrieve, used for paging.
* @param numOfRecords the number of records to retrieve, the default -1 will retrieve all records in the resulting query.
* @param filter optional, FourDQuery to further filter records to he retrieved
* @param orderby optional order By clause to retrieve records in a set order. in the format:
>table.field : to sort records by table.field in ascending order
<table.field : to sort records by table.field in descending order
*
*
* @returns returns a Promise for the database operation, whose result is a FourDCollection with the query results
*/
getRecords(query?: FourDQuery, columns?: Array, startRec?: number, numOfRecords?: number, filter?: string, orderby?: string): Promise;
/**
* Retrieves a set of variables or 4D execute formula values
*
* @param values an Array of objects with the following format: {formula: 'a 4d formula', value:'the resulting value returned by 4D'}
* @param method the name of a 4D method to be called before processing the formulas
*
* @returns returns a Promise for the database operation, whose result is the values Array populated by 4D
*/
getValuesFrom4D(values: Array, method?: string): Promise>;
/**
* Get the current record's record number
*
* @returns current record number (4D's record number, equivalent to ROWID)
*
*/
get recordNumber(): number;
set recordNumber(v: number);
/**
* Checks to see if a record is currently loaded
*
* @returns true if a record is loaded into this FourDModel instance
*
*/
isRecordLoaded(): boolean;
/**
* Clears record modified flag.
*
* This can be used when one changes a record programmatically, but does not want to set the record modified flag.
* For example on record initialization.
*
*/
clearRecordDirtyFlag(): void;
/**
* Check if current record has been modified.
*
* @returns true indicates that record contents have been modified.
*
*/
recordIsDirty(): boolean;
/**
* Prepares the record's JSON field description to send to 4D
*
* @returns JSON string representing all fields in the Data Model
*/
getColumnListJSON(): string;
/**
* Gets a list of fields in the Data Model
*
* @param includeSubTables if 'true', includes fields in subtables defined in the Data Model
*
* @returns an array with all fields defined for this data model
*/
getColumnList(includeSubTables?: boolean): Array;
/**
* Returns a field's longname, given its field name
*
* @param fieldName the field name
*
* @returns the field dot longname, as 'table.field'
*/
getLongname(fieldName: string): string;
/**
* Returns a field's data model description
*
* @param fieldName the field name
*
* @returns the field's iFieldDescription
*/
private getFieldDescription;
/**
* Checks to see if a field is from a related table
*
* @param field field description for the Class definition
* @return true if field is on a related table
*
*/
private isRelatedField;
/**
* Checks to see if a field contents have been modified
*
* @param field field/property name
* @returns true if field has been modified
*
*/
private isModifiedField;
/**
* Checks to see if a field is a calculated field
*
* @param field field description from the Data Model
*
* @returns true if field is formula, a calculated field
*
*/
private isCalculatedField;
/**
* Checks to see if a field is a related many subtable
*
* @param field field description from the Data Model
* @returna true if field is a related many subtable
*
*/
private isSubtable;
/**
* Checks to see if a field is read only
*
* @param field field description from the Data Model
* @returns true if field is read only
*
*/
private isReadOnly;
static ɵfac: i0.ɵɵFactoryDeclaration;
static ɵprov: i0.ɵɵInjectableDeclaration;
}