import { Request, Response } from 'express'; import { Query, SearchInfo } from '../..'; import { ToItem } from '../../api/item'; import { Promisable } from '../../utils/types'; import { ItemsConfig, Sonolus } from '../sonolus'; export type ListHandler = (sonolus: Sonolus, query: T, page: number) => Promisable<{ pageCount: number; infos: U[]; }>; export declare const defaultListHandler: (infos: T[], filter: (infos: T[], keywords: string) => T[], query: Record, page: number) => { pageCount: number; infos: T[]; }; export declare const listRouteHandler: (sonolus: Sonolus, handler: ListHandler, U>, toItem: ToItem, search: SearchInfo, req: Request, res: Response) => Promise; export declare const paginateInfos: (infos: T[], page: number, perPage?: number) => { pageCount: number; infos: T[]; }; export declare const filterInfosByKeywords: (infos: T[], props: (keyof T)[], keywords: string) => T[];