declare module 'objection-js-soft-delete' { import { Model, QueryBuilder } from 'objection'; class SoftDeleteQueryBuilder extends QueryBuilder { ArrayQueryBuilderType: SoftDeleteQueryBuilder; NumberQueryBuilderType: SoftDeleteQueryBuilder; delete(): this['NumberQueryBuilderType']; hardDelete(): this['NumberQueryBuilderType']; undelete(): this['NumberQueryBuilderType']; whereDeleted(): this['ArrayQueryBuilderType']; whereNotDeleted(): this['ArrayQueryBuilderType']; } interface SoftDeleteInstance { //@ts-ignore QueryBuilderType: SoftDeleteQueryBuilder; } interface SoftDeleteStatic { QueryBuilder: typeof SoftDeleteQueryBuilder; isSoftDelete: boolean; namedFilters(): object; new (): SoftDeleteInstance & T['prototype']; } export default function softDelete( options?: Partial<{ columnName: string; deletedValue: Date | boolean | number; notDeletedValue: boolean | null; }>, ): (model: T) => Omit & SoftDeleteStatic; }