import { IPrismOutput } from '@stoplight/prism-core'; import { IHttpOperation } from '@stoplight/types'; import { IHttpConfig, IHttpRequest, IHttpResponse } from './types'; import * as pino from 'pino'; type IClientConfig = IHttpConfig & { baseUrl?: string; logger?: pino.Logger; }; export declare function createClientFromOperations(resources: IHttpOperation[], defaultConfig: IClientConfig): PrismHttp; type PrismOutput = { status: IHttpResponse['statusCode']; headers: IHttpResponse['headers']; data: unknown; config: IClientConfig; request: IHttpRequest; violations: IPrismOutput['validations']; }; type RequestFunction = (this: PrismHttp, url: string, input: Omit, config?: Partial) => Promise; interface IRequestFunctionWithMethod { (this: PrismHttp, url: string, input: Required>, config?: Partial): Promise; (this: PrismHttp, url: string, config?: Partial): Promise; } interface IRequestFunctionWithMethodWithBody { (this: PrismHttp, url: string, body: unknown, input: Required>, config?: Partial): Promise; (this: PrismHttp, url: string, body: unknown, config?: Partial): Promise; } export type PrismHttp = { request: RequestFunction; get: IRequestFunctionWithMethod; put: IRequestFunctionWithMethodWithBody; post: IRequestFunctionWithMethodWithBody; delete: IRequestFunctionWithMethod; options: IRequestFunctionWithMethod; head: IRequestFunctionWithMethod; patch: IRequestFunctionWithMethodWithBody; trace: IRequestFunctionWithMethod; }; export {};