import { ModuleMetadata, Type } from '@nestjs/common/interfaces'; import { PactOptions, PactV2Options, PactV3Options } from '@pact-foundation/pact'; import { PublisherOptions } from '@pact-foundation/pact-cli'; export type PactConsumerOptions = Omit; export type PactV2ConsumerOptions = Omit; export type PactV3ConsumerOptions = Omit; export type PactPublicationOptions = PublisherOptions; export interface PactConsumerOverallOptions { consumer: PactConsumerOptions; publication?: PactPublicationOptions; } export interface PactV2ConsumerOverallOptions { consumer: PactV2ConsumerOptions; publication?: PactPublicationOptions; } export interface PactV3ConsumerOverallOptions { consumer: PactV3ConsumerOptions; publication?: PactPublicationOptions; } export interface PactConsumerOptionsFactory { createPactConsumerOptions(): Promise | PactConsumerOverallOptions; } export interface PactConsumerModuleAsyncOptions extends Pick { inject?: any[]; useClass?: Type; useExisting?: Type; useFactory?: (...args: any[]) => Promise | PactConsumerOverallOptions; } export interface PactV2ConsumerOptionsFactory { createPactV2ConsumerOptions(): Promise | PactV2ConsumerOverallOptions; } export interface PactV2ConsumerModuleAsyncOptions extends Pick { inject?: any[]; useClass?: Type; useExisting?: Type; useFactory?: (...args: any[]) => Promise | PactV2ConsumerOverallOptions; } export interface PactV3ConsumerOptionsFactory { createPactV3ConsumerOptions(): Promise | PactV3ConsumerOverallOptions; } export interface PactV3ConsumerModuleAsyncOptions extends Pick { inject?: any[]; useClass?: Type; useExisting?: Type; useFactory?: (...args: any[]) => Promise | PactV3ConsumerOverallOptions; }