export default class VelociousDatabaseQueryWhereModelClassHash extends WhereBase {
    /**
     * Runs constructor.
     * @param {object} args - Options object.
     * @param {import("./index.js").default} args.query - Query instance.
     * @param {WhereHash} args.hash - Hash.
     * @param {typeof import("../record/index.js").default} args.modelClass - Model class.
     * @param {boolean} [args.qualifyBaseTable] - Whether to qualify base table columns.
     */
    constructor({ query, hash, modelClass, qualifyBaseTable }: {
        query: import("./index.js").default;
        hash: WhereHash;
        modelClass: typeof import("../record/index.js").default;
        qualifyBaseTable?: boolean | undefined;
    });
    hash: WhereHash;
    modelClass: typeof import("../record/index.js").default;
    qualifyBaseTable: boolean;
    query: import("./index.js").default;
    /**
     * Runs get model class.
     * @returns {typeof import("../record/index.js").default} - The model class.
     */
    getModelClass(): typeof import("../record/index.js").default;
    /**
     * Runs resolve column name.
     * @param {typeof import("../record/index.js").default} modelClass - Model class.
     * @param {string} key - Attribute or column name.
     * @returns {string | undefined} - The resolved column name.
     */
    _resolveColumnName(modelClass: typeof import("../record/index.js").default, key: string): string | undefined;
    /**
     * Runs get relationship.
     * @param {typeof import("../record/index.js").default} modelClass - Model class.
     * @param {string} relationshipName - Relationship name.
     * @returns {import("../record/relationships/base.js").default | undefined} - The relationship.
     */
    _getRelationship(modelClass: typeof import("../record/index.js").default, relationshipName: string): import("../record/relationships/base.js").default | undefined;
    /**
     * Runs is relationship where operator tuple.
     * @param {?} tupleValue - Candidate tuple.
     * @returns {boolean} - Whether this is a relationship where tuple.
     */
    _isRelationshipWhereOperatorTuple(tupleValue: unknown): boolean;
    /**
     * Runs normalize relationship where operator tuples.
     * @param {?} value - Candidate relationship where value.
     * @returns {Array<[string, "eq" | "notEq" | "gt" | "gteq" | "lt" | "lteq" | "like", unknown]>} - Normalized tuples.
     */
    _normalizeRelationshipWhereOperatorTuples(value: unknown): Array<[string, "eq" | "notEq" | "gt" | "gteq" | "lt" | "lteq" | "like", unknown]>;
    /**
     * Runs is relationship where operator tuple container.
     * @param {?} value - Candidate relationship where value.
     * @returns {boolean} - Whether value can be normalized to relationship tuples.
     */
    _isRelationshipWhereOperatorTupleContainer(value: unknown): boolean;
    /**
     * Runs where sqlfrom relationship where operator tuples.
     * @param {object} args - Relationship where options.
     * @param {typeof import("../record/index.js").default} args.modelClass - Relationship model class.
     * @param {string} args.tableName - Relationship table reference name.
     * @param {Array<[string, "eq" | "notEq" | "gt" | "gteq" | "lt" | "lteq" | "like", unknown]>} args.tuples - Operator tuples.
     * @returns {string} - SQL where fragment.
     */
    _whereSQLFromRelationshipWhereOperatorTuples({ modelClass, tableName, tuples }: {
        modelClass: typeof import("../record/index.js").default;
        tableName: string;
        tuples: Array<[string, "eq" | "notEq" | "gt" | "gteq" | "lt" | "lteq" | "like", unknown]>;
    }): string;
    /**
     * Runs normalize sqlite boolean value.
     * @param {object} args - Options object.
     * @param {typeof import("../record/index.js").default} args.modelClass - Model class.
     * @param {string} args.columnName - Column name.
     * @param {?} args.value - Value to normalize.
     * @returns {?} - Normalized value.
     */
    _normalizeSqliteBooleanValue({ modelClass, columnName, value }: {
        modelClass: typeof import("../record/index.js").default;
        columnName: string;
        value: unknown;
    }): unknown;
    /**
     * Runs normalize value for column type.
     * @param {object} args - Options object.
     * @param {typeof import("../record/index.js").default} args.modelClass - Model class.
     * @param {string} args.columnName - Column name.
     * @param {?} args.value - Value to normalize.
     * @returns {?} - Normalized value.
     */
    _normalizeValueForColumnType({ modelClass, columnName, value }: {
        modelClass: typeof import("../record/index.js").default;
        columnName: string;
        value: unknown;
    }): unknown;
    /**
     * Runs where sqlfrom hash.
     * @param {WhereHash} hash - Hash.
     * @param {typeof import("../record/index.js").default} modelClass - Model class.
     * @param {string[]} path - Join path.
     * @param {string} [tableName] - Table name.
     * @param {number} index - Index value.
     * @returns {string} - SQL string.
     */
    _whereSQLFromHash(hash: WhereHash, modelClass: typeof import("../record/index.js").default, path: string[], tableName?: string, index?: number): string;
}
/**
 * No match.
 */
export type WhereHash = {
    [key: string]: string | number | boolean | null | Array<string | number | boolean | null> | Record<string, unknown>;
};
import WhereBase from "./where-base.js";
//# sourceMappingURL=where-model-class-hash.d.ts.map