import "knex"; import type { Knex } from "knex"; declare let Database: Knex; declare type Database = Knex; export default Database; type PaginationOptions = { page?: number; pageSize?: number; query?: any; url?: string; }; type PaginationResults = { data: T[]; pagination: { total: number; pageSize: number; currentPage: number; totalPages: number; pages: number[]; firstPage: number; lastPage: number; prevPage: number; nextPage: number; links?: { [key in 'firstPage' | 'prevPage' | 'nextPage' | 'lastPage' | keyof PaginationResults['pagination']['pages']]: { label: string; active: boolean; url: string; }; }; }; }; declare module "knex" { namespace Knex { interface QueryBuilder { create(data: any): Promise; softDelete(): Promise; restore(): Promise; withTrashed(): Knex.QueryBuilder; withoutTrashed(): Knex.QueryBuilder; onlyTrashed(): Knex.QueryBuilder; get(columns?: string[]): Promise; pagination(options: PaginationOptions): Promise>; /** * @experimental */ autoPaginate(perPage?: number): Promise>; hidden(columns: string[]): Knex.QueryBuilder; hasOne(related: string, foreignKey: string, localKey: string): Knex.QueryBuilder; } interface TableBuilder { softDeletes(): Knex.TableBuilder; dropSoftDeletes(): Knex.TableBuilder; rememberToken(): Knex.TableBuilder; } } }