import Common from './Common';
import { DataValue, ModelDBCheck } from './@types';
export default class DBChecker<F extends string = string> extends Common<F> {
    private dbModel;
    private dbCaseStyle;
    private query;
    /**
     * executes the query
     */
    protected execute(model: any, query: object): any;
    /**
     * resets the db checker, and checks if the check call should proceed
     */
    protected setup(required: boolean, field: string, value: DataValue, check: ModelDBCheck, index: number): boolean;
    /**
     * sets db model to use
     *
     * @param dbModel db model to use
     */
    setDBModel(dbModel: number): this;
    /**
     * sets db model field case style to use
     *
     * @param dbModel db model case style to use
     */
    setDBCaseStyle(dbCaseStyle: number): this;
    /**
     * checks if database field value exists, setting error if it does
     *
     * @param required boolean indicating if field is required
     * @param field current field under check
     * @param value current field value under check
     * @param check check options
     * @param index current field value index under check
     */
    checkIfExists(required: boolean, field: string, value: DataValue, check: ModelDBCheck, index: number): Promise<boolean>;
    /**
     * checks if database field value does not exist, setting error if it does not
     *
     * @param required boolean indicating if field is required
     * @param field current field under check
     * @param value current field value under check
     * @param check check options
     * @param index current field value index under check
     */
    checkIfNotExists(required: boolean, field: string, value: DataValue, check: ModelDBCheck, index: number): Promise<boolean>;
}
