import { ApiNextFunction, ApiRequest, ApiResponse } from 'api-machine'; import { RiaoEndpoint, DatabaseRecordWithId } from './base-endpoint'; import { ArrayValSan, ComposedValSan, ObjectValSan } from 'valsan'; import { Join, SelectColumn, SelectQuery } from '@riao/dbal'; import { EndpointMethod } from 'api-machine/router/endpoint'; import { KeyValExpression } from '@riao/dbal/expression/key-val-expression'; export declare const columnNameValidator: ComposedValSan; export declare const columnArrayValidator: ArrayValSan; export declare const whereConditionValidator: ObjectValSan; export declare const whereArrayValidator: ArrayValSan; export declare const aggregateColumnValidator: ObjectValSan; export declare const aggregateArrayValidator: ArrayValSan; export declare const orderItemValidator: ObjectValSan; export declare const orderArrayValidator: ArrayValSan; export declare const searchValidators: { columns: import("valsan").ValSan; where: import("valsan").ValSan; aggregates: import("valsan").ValSan; groupBy: import("valsan").ValSan; order: import("valsan").ValSan; limit: ComposedValSan; offset: ComposedValSan; orderBy: ComposedValSan; orderDirection: ComposedValSan; }; export interface RiaoSearchColumn { column: SelectColumn | string; join?: Join | Join[]; } export declare class RiaoSearchEndpoint extends RiaoEndpoint { path: string; method: EndpointMethod; statusCode: number; bodyExample: { limit: number; offset: number; order: { column: string; direction: string; }[]; }; body: ObjectValSan; responseExample: { records: { id: number; name: string; email: string; }[]; count: number; }; response: ObjectValSan; protected getColumnMap(): Record>; protected getQuery(request: ApiRequest): Promise>; protected appendWhere(): Promise[]>; handle(request: ApiRequest, response: ApiResponse, next: ApiNextFunction): Promise<{ records: T[]; count: number; }>; }