import type { EntitySchema, OrmRequest, OrmResponse } from '@mostajs/orm'; import type { ITransport, TransportConfig, TransportInfo, TransportMiddleware, TransportContext } from '../core/types.js'; type OrmHandler = (req: OrmRequest, ctx: TransportContext) => Promise; export declare class ODataTransport implements ITransport { readonly name = "odata"; private config; private schemas; private middlewares; private ormHandler; private stats; setHandler(handler: OrmHandler): void; use(mw: TransportMiddleware): void; registerEntity(schema: EntitySchema): void; /** * Handle OData HTTP request. * URL patterns: * GET /odata/Users → findAll * GET /odata/Users('id') → findById * GET /odata/Users/$count → count * POST /odata/Users → create * PATCH /odata/Users('id') → update * DELETE /odata/Users('id') → delete * * Query options: $filter, $select, $orderby, $top, $skip, $count, $expand */ handleRequest(method: string, path: string, query: Record, body?: any): Promise<{ status: number; data: any; }>; /** * Parse OData $filter to MongoDB-style filter. * Supports: eq, ne, gt, ge, lt, le, and, or, contains */ private parseODataFilter; /** * Parse OData $orderby to sort object. * Example: "name asc,age desc" → { name: 1, age: -1 } */ private parseODataOrderBy; /** * Generate OData $metadata XML (EDMX). */ generateMetadata(): string; getPath(): string; start(config: TransportConfig): Promise; stop(): Promise; getInfo(): TransportInfo; } /** Factory */ export declare function createTransport(): ITransport; export {};