/**
 * Pact Options module.
 * @module PactV2Options
 */
import type { VerifierOptions as PactCoreVerifierOptions } from '@pact-foundation/pact-core';
import type { MessageProviders, MessageStateHandlers } from './message';
import type { PactfileWriteMode } from './mockService';
export type LogLevel = 'trace' | 'debug' | 'info' | 'warn' | 'error';
export interface PactV2Options {
    consumer: string;
    provider: string;
    port?: number;
    host?: string;
    ssl?: boolean;
    sslcert?: string;
    sslkey?: string;
    dir?: string;
    log?: string;
    logLevel?: LogLevel;
    spec?: number;
    cors?: boolean;
    timeout?: number;
    pactfileWriteMode?: PactfileWriteMode;
}
export interface MandatoryPactV2Options {
    port: number;
    host: string;
    ssl: boolean;
}
export type PactV2OptionsComplete = PactV2Options & MandatoryPactV2Options;
export interface MessageProviderOptions {
    logLevel?: LogLevel;
    messageProviders: MessageProviders;
    stateHandlers?: MessageStateHandlers;
}
type ExcludedPactNodeVerifierKeys = Exclude<keyof PactCoreVerifierOptions, 'providerBaseUrl'>;
export type PactNodeVerificationExcludedOptions = Pick<PactCoreVerifierOptions, ExcludedPactNodeVerifierKeys>;
export type PactMessageProviderOptions = PactNodeVerificationExcludedOptions & MessageProviderOptions;
export interface MessageConsumerOptions {
    consumer: string;
    dir?: string;
    provider: string;
    log?: string;
    logLevel?: LogLevel;
    spec?: number;
    pactfileWriteMode?: PactfileWriteMode;
}
export {};
