import type * as AbstractSQLCompiler from '@balena/abstract-sql-compiler'; import type { ODataBinds, ODataQuery, SupportedMethod } from '@balena/odata-parser'; import type { Tx } from '../database-layer/db.js'; import type { InstantiatedHooks } from './hooks.js'; import type { AnyObject } from './common-types.js'; import ODataParser from '@balena/odata-parser'; export declare const SyntaxError: typeof ODataParser.SyntaxError; import { OData2AbstractSQL } from '@balena/odata-to-abstract-sql'; export { BadRequestError, ParsingError, TranslationError } from './errors.js'; import * as sbvrUtils from './sbvr-utils.js'; export type OdataBinds = ODataBinds; export interface UnparsedRequest { method: string; url: string; data?: any; headers?: { [header: string]: string; }; changeSet?: UnparsedRequest[]; _isChangeSet?: boolean; } export interface ParsedODataRequest { method: SupportedMethod; url: string; vocabulary: string; resourceName: string; originalResourceName: string; values: AnyObject; odataQuery: ODataQuery; odataBinds: OdataBinds; custom: AnyObject; id?: number | undefined; _defer?: boolean; } export interface CachedSqlQuery extends Array { length: 0; engine: AbstractSQLCompiler.Engines; sqlQuery: AbstractSQLCompiler.SqlResult | AbstractSQLCompiler.SqlResult[]; modifiedFields?: ReturnType; } export interface ODataRequest extends ParsedODataRequest { translateVersions: string[]; abstractSqlModel?: AbstractSQLCompiler.AbstractSqlModel; finalAbstractSqlModel?: AbstractSQLCompiler.AbstractSqlModel; abstractSqlQuery?: AbstractSQLCompiler.AbstractSqlQuery | CachedSqlQuery; sqlQuery?: AbstractSQLCompiler.SqlResult | AbstractSQLCompiler.SqlResult[]; tx?: Tx; modifiedFields?: ReturnType; affectedIds?: number[]; pendingAffectedIds?: Promise; hooks?: Array<[string, InstantiatedHooks]>; engine: AbstractSQLCompiler.Engines; } export declare const parseId: (b: any) => [type: string, value: any] | [type: string, value: any]; export declare const memoizedParseOdata: (url: string) => { tree: ODataQuery; binds: ODataBinds; }; export declare const memoizedGetOData2AbstractSQL: ((abstractSqlModel: AbstractSQLCompiler.AbstractSqlModel) => OData2AbstractSQL) & import("memoizee").Memoized<(abstractSqlModel: AbstractSQLCompiler.AbstractSqlModel) => OData2AbstractSQL>; export declare const metadataEndpoints: string[]; export declare function parseOData(b: UnparsedRequest & { _isChangeSet?: false; }): ParsedODataRequest; export declare function parseOData(b: UnparsedRequest & { _isChangeSet: true; }): ParsedODataRequest[]; export declare function parseOData(b: UnparsedRequest): ParsedODataRequest | ParsedODataRequest[]; export declare const translateUri: >(request: T & { abstractSqlQuery?: ODataRequest["abstractSqlQuery"]; }) => typeof request;