/** * PostFinance TypeScript SDK * * This library allows to interact with the PostFinance payment service. * * Copyright owner: Wallee AG * Website: https://www.postfinance.ch/en/private.html * Developer email: ecosystem-team@wallee.com * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ import { HttpBearerAuth } from './auth/HttpBearerAuth'; export declare const BASE_PATH: string; export interface ConfigurationParameters { basePath?: string; fetchApi?: FetchAPI; middleware?: Middleware[]; queryParamsStringify?: (params: HTTPQuery) => string; headers?: HTTPHeaders; credentials?: RequestCredentials; httpBearerAuth?: HttpBearerAuth; requestTimeout?: number; } export declare class Configuration { private configuration; constructor(configuration?: ConfigurationParameters); set config(configuration: Configuration); get basePath(): string; get fetchApi(): FetchAPI | undefined; get middleware(): Middleware[]; get queryParamsStringify(): (params: HTTPQuery) => string; get headers(): HTTPHeaders | undefined; get credentials(): RequestCredentials | undefined; get requestTimeout(): number; set requestTimeout(value: number); get httpBearerAuth(): HttpBearerAuth; set httpBearerAuth(value: HttpBearerAuth); } export declare const DefaultConfig: Configuration; /** * This is the base class for all generated API classes. */ export declare class BaseAPI { protected configuration: Configuration; private static readonly jsonRegex; private middleware; constructor(configuration?: Configuration); withMiddleware(this: T, ...middlewares: Middleware[]): T; withPreMiddleware(this: T, ...preMiddlewares: Array): T; withPostMiddleware(this: T, ...postMiddlewares: Array): T; /** * Check if the given MIME is a JSON MIME. * JSON MIME examples: * application/json * application/json; charset=UTF8 * APPLICATION/JSON * application/vnd.company+json * @param mime - MIME (Multipurpose Internet Mail Extensions) * @return True if the given MIME is JSON, false otherwise. */ protected isJsonMime(mime: string | null | undefined): boolean; protected request(context: RequestOpts, initOverrides?: RequestInit | InitOverrideFunction): Promise; private createFetchParams; private addMetaHeaders; private getVersion; private fetchApi; /** * Create a shallow clone of `this` by constructing a new instance * and then shallow cloning data members. */ private clone; } export declare class ResponseError extends Error { response: Response; name: "ResponseError"; constructor(response: Response, msg?: string); } export declare class FetchError extends Error { cause: Error; name: "FetchError"; constructor(cause: Error, msg?: string); } export declare class RequiredError extends Error { field: string; name: "RequiredError"; constructor(field: string, msg?: string); } export declare const COLLECTION_FORMATS: { csv: string; ssv: string; tsv: string; pipes: string; }; export type FetchAPI = WindowOrWorkerGlobalScope['fetch']; export type Json = any; export type HTTPMethod = 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE' | 'OPTIONS' | 'HEAD'; export type HTTPHeaders = { [key: string]: string; }; export type HTTPQuery = { [key: string]: string | number | null | boolean | Array | Set | HTTPQuery; }; export type HTTPBody = Json | FormData | URLSearchParams; export type HTTPRequestInit = { headers?: HTTPHeaders; method: HTTPMethod; credentials?: RequestCredentials; body?: HTTPBody; }; export type ModelPropertyNaming = 'camelCase' | 'snake_case' | 'PascalCase' | 'original'; export type InitOverrideFunction = (requestContext: { init: HTTPRequestInit; context: RequestOpts; }) => Promise; export interface FetchParams { url: string; init: RequestInit; } export interface RequestOpts { path: string; method: HTTPMethod; headers: HTTPHeaders; query?: HTTPQuery; body?: HTTPBody; } export declare function querystring(params: HTTPQuery, prefix?: string): string; export declare function exists(json: any, key: string): boolean; export declare function mapValues(data: any, fn: (item: any) => any): { [key: string]: any; }; export declare function canConsumeForm(consumes: Consume[]): boolean; export interface Consume { contentType: string; } export interface RequestContext { fetch: FetchAPI; url: string; init: RequestInit; } export interface ResponseContext { fetch: FetchAPI; url: string; init: RequestInit; response: Response; } export interface ErrorContext { fetch: FetchAPI; url: string; init: RequestInit; error: unknown; response?: Response; } export interface Middleware { pre?(context: RequestContext): Promise; post?(context: ResponseContext): Promise; onError?(context: ErrorContext): Promise; } export interface ApiResponse { raw: Response; value(): Promise; } export interface ResponseTransformer { (json: any): T; } export declare class JSONApiResponse { raw: Response; private transformer; constructor(raw: Response, transformer?: ResponseTransformer); value(): Promise; } export declare class VoidApiResponse { raw: Response; constructor(raw: Response); value(): Promise; } export declare class BlobApiResponse { raw: Response; constructor(raw: Response); value(): Promise; } export declare class TextApiResponse { raw: Response; constructor(raw: Response); value(): Promise; }