import { IAppDB } from '../../mmApp';
import { IQueryData, QueryData } from './QueryData';
import { IModelRes, IModelRules, IDbControllerModel, TKey, IDbControllerResult, TQueryCb } from '../interface';
export declare abstract class DbControllerModel implements IDbControllerModel {
    protected _tableName: string;
    protected _rules: IModelRules[];
    protected _connectConfig: IAppDB | undefined;
    protected _primaryKeyName: TKey;
    protected constructor();
    set tableName(tableName: string);
    get tableName(): string;
    set primaryKeyName(primaryKey: TKey);
    get primaryKeyName(): TKey;
    setRules(rules: IModelRules[]): void;
    getValue(res: IModelRes): IDbControllerResult | null;
    abstract select(select: IQueryData | null, isOne: boolean): Promise<IModelRes>;
    abstract insert(insertData: QueryData): any;
    abstract update(updateData: QueryData): any;
    save(saveData: QueryData, isNew: boolean): Promise<any>;
    abstract remove(removeData: QueryData): any;
    abstract query(callback: TQueryCb): any;
    selectOne(query: IQueryData | null): Promise<IModelRes | null>;
    escapeString(str: string | number): string;
    abstract isConnected(): Promise<boolean>;
    destroy(): void;
}
