import type { BatchRequestV4, ParsedResponseV4 } from "./batch"; import type { SystemQueryOptions } from "./params"; import { OData } from "./odata"; import type { BatchRequestOptions, ODataActionImportRequest, ODataActionRequest, ODataFunctionImportRequest, ODataFunctionRequest, ODataQueryRequest, ODataReadIDRequest, ODataWriteRequest, UnwrapBatchRequest, UnwrapPromise } from "./types"; import { EdmString, Guid, ODataValueObject, RawString } from "./types"; export interface PlainODataResponseV4 { error?: { code: string; message: { lang: string; value: string; /** server error message */ } & string; }; /** * context string */ "@odata.context"?: string; /** * total count */ "@odata.count"?: number; "@odata.id"?: string; "@odata.etag"?: string; "@odata.editLink"?: string; } export type BatchPlainODataResponseV4 = PlainODataResponseV4 & { value?: Array; } & E; export type PlainODataSingleResponseV4 = E & PlainODataResponseV4; export type PlainODataMultiResponseV4 = PlainODataResponseV4 & { /** * values result list */ value?: Array; }; export interface ODataV4 extends OData { /** * get odata version */ getVersion(): "v4"; /** * create new odata http request */ newRequest(options: ODataQueryRequest): Promise>; /** * create new odata http request */ newRequest(options: ODataWriteRequest): Promise>; /** * create new odata http request */ newRequest(options: ODataReadIDRequest): Promise>; /** * create new odata http request */ newRequest(options: ODataFunctionRequest): Promise; /** * create new odata http request */ newRequest(options: ODataActionRequest): Promise; /** * create new odata http request */ newRequest(options: ODataFunctionImportRequest): Promise; /** * create new odata http request */ newRequest(options: ODataActionImportRequest): Promise; functionImport(functionName: string, parameters?: any, params?: SystemQueryOptions): Promise; actionImport(actionName: string, parameters?: any, params?: SystemQueryOptions): Promise; /** * create batch request (will not perform) * * @param options */ newBatchRequest(options: BatchRequestOptionsV4): Promise; /** * execute batch requests and get response * * @param requests batch request * */ execBatchRequests(requests: T): BatchResponsesV4; /** * execute batch requests in OData `V4.01` JSON format, and get the response * * @param requests */ execBatchRequestsJson(requests: T): BatchResponsesV4; } export type BatchRequestsV4 = Array>; export type BatchResponsesV4 = Promise<{ [K in keyof T]: ParsedResponseV4>>; }>; export interface BatchRequestOptionsV4 extends BatchRequestOptions { /** * odata-json-format-v4.01 * request id */ requestId?: string; /** * odata-json-format-v4.01 * atomicityGroup */ atomicityGroup?: string; /** * odata-json-format-v4.01 * inner headers */ headers?: Record; /** * odata-json-format-v4.01 * dependsOn */ dependsOn?: Array; } /** * date object for odata v4 * * @version 4.0 */ export declare abstract class ODataDateBase extends ODataValueObject { protected constructor(date: Date | string | number); } /** * Edm.DateTime * * @version 4.0 */ export declare class ODataDateTimeOffset extends ODataDateBase { static from(date: Date): ODataDateTimeOffset; toString(): string; } /** * @version 4.0 */ export declare class ODataDate extends ODataDateBase { static from(date: Date): ODataDate; toString(): string; } export declare const EdmV4: { RawString: typeof RawString; DateTimeOffset: typeof ODataDateTimeOffset; Date: typeof ODataDate; Guid: typeof Guid; String: typeof EdmString; };