import { IColumnFilter, IFilter, IFilterRequest, FilterableLogicalOperators } from './interfaces.js'; declare module '@spinajs/orm' { interface IModelDescriptor { /** * If set column is fitlerable by this operators */ FilterableColumns?: Map>; } interface ISelectQueryBuilder { /** * * Add filter to query * * @param filter * @param logicalOperator */ filter(filter: IFilter[], logicalOperator?: FilterableLogicalOperators, filters?: IColumnFilter[]): this; } namespace ModelBase { /** * @returns json schema of filterable columns */ function filterSchema(): any; function filterColumns(): IColumnFilter[]; /** * * NOTE: this is not a part of orm, but a part of orm-http extension * NOTE 2: explicit type for generic T is not possible due to typescript limitations * we cannot infer type of T from function arguments couse this is augumentation * * @param filterRequest */ function filter>(filterRequest: IFilterRequest): Promise>; } } //# sourceMappingURL=extension.d.ts.map