import type { ActionParams, AnyObject, AnyResource, ConstructorParams, OptionsToResponse, Params, Resource, RetryParameters } from 'pinejs-client-core'; import { PinejsClientCore } from 'pinejs-client-core'; import type * as express from 'express'; import type { CallbackHandler, Response, Test } from 'supertest'; import type { UserParam, Overwrite } from './common'; import type { PickDeferred } from '@balena/abstract-sql-to-typescript' with { 'resolution-mode': 'import' }; type StringKeyOf = keyof T & string; type supportedMethod = 'get' | 'put' | 'patch' | 'post' | 'delete'; export type PromiseResult = Promise & Omit & Promise> & { expect(statusOrCheckerOrBody: number | ((res: Response) => any) | string | RegExp | object, callback?: CallbackHandler): PromiseResult; expect(status: number, body: any, callback?: CallbackHandler): PromiseResult; expect(field: string, val: string | RegExp, callback?: CallbackHandler): PromiseResult; }; interface BackendParams { app: express.Express | string; } export declare class PineTest extends PinejsClientCore { backendParams: BackendParams; constructor(params: ConstructorParams, backendParams: BackendParams); get, TParams extends Params & { resource: TResource; }>(params: { resource: TResource; } & TParams): PromiseResult, TParams['id']>>>; get(params: Params): PromiseResult; put>(params: { resource: TResource; url?: undefined; } & Params): PromiseResult; patch>(params: { resource: TResource; url?: undefined; } & Params): PromiseResult; post>(params: { resource: TResource; } & ActionParams & Omit, 'method' | 'url' | 'body'>): PromiseResult; post>(params: { resource: TResource; } & Params): PromiseResult>; delete>(params: { resource: TResource; } & Params): PromiseResult; upsert(): never; getOrCreate(): never; request(...args: Parameters['request']>): PromiseResult; protected callWithRetry(fnCall: () => Promise, retry?: RetryParameters): Promise; _request({ method, url, body, user, }: { method: supportedMethod; url: string; body: AnyObject; user?: UserParam; }): import("supertest").SuperTestStatic.Test; } export {};