import { BusinessObjectBase } from '../lib-core/business-object';
import { DmsApplicationService } from '../lib-core/application-context-service';
import { DbQuery } from '../lib-core/db-query';
import { PlatformType } from '../platform/dms-platform-type';
export declare class MobileDbQuery<T extends BusinessObjectBase> extends DbQuery<T> {
    protected _entityName: string;
    protected _entityTable: string;
    protected _filter: string;
    protected _max: number;
    protected _expand: string;
    protected _page: number;
    protected _group: string;
    protected _fields: Array<string>;
    protected _aggregate: string;
    protected _sort: string;
    protected _appCode: string;
    protected dms: DmsApplicationService;
    protected platformType: PlatformType;
    protected q: any;
    constructor(_entityName: string, _entityTable: string);
    private _checkIfFuncWasUsed;
    private _checkFunctionArgs;
    fields(fields: Array<string>): DbQuery<T>;
    filter(filterExpr: string): DbQuery<T>;
    group(groupExpr: string): DbQuery<T>;
    aggregate(aggregateExpr: string): DbQuery<T>;
    sort(sortExpr: string): DbQuery<T>;
    page(pageNo: number): DbQuery<T>;
    limit(maxRecords: number): DbQuery<T>;
    expand(expandExrp: string): DbQuery<T>;
    private sqlOperatorsToODATAOperators;
    executeSelect(): Promise<Array<T>>;
    protected getEntityValueAsDbString(value: any, valueType: string): any;
    executeCreate(entity: T): Promise<{
        keys: Array<string>;
    }>;
    executeUpdate(entity: T): Promise<void>;
    executeDelete(entity: {
        DMS_ROWID: string;
    }): Promise<void>;
    private static mapPropTypeToSqlType;
    private static createTable;
    private static getEntityTableName;
    static upgradeDatabaseShema(): Promise<void>;
}
