import 'knex'; declare module "knex" { namespace Knex { interface TableBuilder { softDelete(): Knex.ColumnBuilder; foreignIdFor(tableName: string, columnName?: string): Knex.ColumnBuilder; } interface ColumnBuilder { searchable(): Knex.ColumnBuilder; } interface QueryBuilder { updates(payload: Record[], pk?: string): Knex.QueryBuilder; joinWith(type: "BELONGSTO" | "HASONE" | "HASMANY" | "BELONGSTOMANY", table: string, relation: { localKey: string; foreignKey: string; } | { pivotTable: string; localKey: string; pivotLocalKey: string; pivotForeignKey: string; foreignKey: string; }, as: string, callback?: (qb: Knex.QueryBuilder) => void): Knex.QueryBuilder; whereJoinHas(type: "BELONGSTO" | "HASONE" | "HASMANY" | "BELONGSTOMANY", table: string, relation: string | { pivotTable: string; localKey: string; pivotLocalKey: string; pivotForeignKey: string; foreignKey: string; }, foreignKey?: string, callback?: (qb: Knex.QueryBuilder) => void): Knex.QueryBuilder; orWhereJoinHas(type: "BELONGSTO" | "HASONE" | "HASMANY" | "BELONGSTOMANY", table: string, relation: string | { pivotTable: string; localKey: string; pivotLocalKey: string; pivotForeignKey: string; foreignKey: string; }, foreignKey?: string, callback?: (qb: Knex.QueryBuilder) => void): Knex.QueryBuilder; whereJoinDoesntHave(type: "BELONGSTO" | "HASONE" | "HASMANY" | "BELONGSTOMANY", table: string, relation: string | { pivotTable: string; localKey: string; pivotLocalKey: string; pivotForeignKey: string; foreignKey: string; }, foreignKey?: string, callback?: (qb: Knex.QueryBuilder) => void): Knex.QueryBuilder; orWhereJoinDoesntHave(type: "BELONGSTO" | "HASONE" | "HASMANY" | "BELONGSTOMANY", table: string, relation: string | { pivotTable: string; localKey: string; pivotLocalKey: string; pivotForeignKey: string; foreignKey: string; }, foreignKey?: string, callback?: (qb: Knex.QueryBuilder) => void): Knex.QueryBuilder; } } }