"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.InstanceChecker = void 0;
class InstanceChecker {
    static isMssqlParameter(obj) {
        return this.check(obj, "MssqlParameter");
    }
    static isEntityMetadata(obj) {
        return this.check(obj, "EntityMetadata");
    }
    static isColumnMetadata(obj) {
        return this.check(obj, "ColumnMetadata");
    }
    static isQueryBuilder(obj) {
        return (this.check(obj, "QueryBuilder") ||
            this.check(obj, "SelectQueryBuilder") ||
            this.check(obj, "InsertQueryBuilder") ||
            this.check(obj, "DeleteQueryBuilder") ||
            this.check(obj, "UpdateQueryBuilder") ||
            this.check(obj, "SoftDeleteQueryBuilder") ||
            this.check(obj, "RelationQueryBuilder"));
    }
    static isSelectQueryBuilder(obj) {
        return this.check(obj, "SelectQueryBuilder");
    }
    static isInsertQueryBuilder(obj) {
        return this.check(obj, "InsertQueryBuilder");
    }
    static isDeleteQueryBuilder(obj) {
        return this.check(obj, "DeleteQueryBuilder");
    }
    static isUpdateQueryBuilder(obj) {
        return this.check(obj, "UpdateQueryBuilder");
    }
    static isSoftDeleteQueryBuilder(obj) {
        return this.check(obj, "SoftDeleteQueryBuilder");
    }
    static isRelationQueryBuilder(obj) {
        return this.check(obj, "RelationQueryBuilder");
    }
    static isBrackets(obj) {
        return this.check(obj, "Brackets") || this.check(obj, "NotBrackets");
    }
    static isNotBrackets(obj) {
        return this.check(obj, "NotBrackets");
    }
    static isSubject(obj) {
        return this.check(obj, "Subject");
    }
    static isRdbmsSchemaBuilder(obj) {
        return this.check(obj, "RdbmsSchemaBuilder");
    }
    static isMongoEntityManager(obj) {
        return this.check(obj, "MongoEntityManager");
    }
    static isSqljsEntityManager(obj) {
        return this.check(obj, "SqljsEntityManager");
    }
    static isEntitySchema(obj) {
        return this.check(obj, "EntitySchema");
    }
    static isFindOperator(obj) {
        return (this.check(obj, "FindOperator") || this.check(obj, "EqualOperator"));
    }
    static isEqualOperator(obj) {
        return this.check(obj, "EqualOperator");
    }
    static isQuery(obj) {
        return this.check(obj, "Query");
    }
    static isTable(obj) {
        return this.check(obj, "Table");
    }
    static isTableCheck(obj) {
        return this.check(obj, "TableCheck");
    }
    static isTableColumn(obj) {
        return this.check(obj, "TableColumn");
    }
    static isTableExclusion(obj) {
        return this.check(obj, "TableExclusion");
    }
    static isTableForeignKey(obj) {
        return this.check(obj, "TableForeignKey");
    }
    static isTableIndex(obj) {
        return this.check(obj, "TableIndex");
    }
    static isTableUnique(obj) {
        return this.check(obj, "TableUnique");
    }
    static isView(obj) {
        return this.check(obj, "View");
    }
    static check(obj, name) {
        return (typeof obj === "object" &&
            obj !== null &&
            obj["@instanceof"] ===
                Symbol.for(name));
    }
}
exports.InstanceChecker = InstanceChecker;

//# sourceMappingURL=InstanceChecker.js.map
