import { ReporterOptions } from '../reporters/Reporter'; import { BenchmarkReporterOptions } from '../reporters/Benchmark'; import { TunnelOptions } from '@theintern/digdug/Tunnel'; import { BrowserStackOptions } from '@theintern/digdug/BrowserStackTunnel'; import { SeleniumOptions } from '@theintern/digdug/SeleniumTunnel'; export interface Config extends ResourceConfig { bail: boolean; baseline: boolean; basePath: string; benchmark: boolean; benchmarkConfig?: BenchmarkConfig; browser: ResourceConfig; coverageVariable: string; debug: boolean; defaultTimeout: number; description: string; filterErrorStack: boolean; grep: RegExp; internPath: string; name: string; node: ResourceConfig; sessionId: string; showConfig: boolean; capabilities: { name?: string; build?: string; [key: string]: any; }; connectTimeout: number; coverage: false | string[]; environments: EnvironmentSpec[]; excludeInstrumentation: never; functionalBaseUrl?: string; functionalCoverage: boolean; functionalSuites: string[]; functionalTimeouts: { connectTimeout?: never; find?: number; executeAsync?: number; pageLoad?: number; }; heartbeatInterval?: number; instrumenterOptions: { [key: string]: any; }; leaveRemoteOpen: boolean | 'fail'; maxConcurrency: number; proxy?: string; remoteOptions: RemoteOptions; runInSync: boolean; serveOnly: boolean; serverPort: number; serverUrl: string; socketPort?: number; socketTimeout?: number; tunnel: string; tunnelOptions: TunnelOptions & BrowserStackOptions & SeleniumOptions; warnOnUnhandledRejection: boolean | RegExp; warnOnUncaughtException: boolean | RegExp; } export interface ReporterDescriptor { name: string; options?: ReporterOptions; } export interface PluginDescriptor { script: string; useLoader?: boolean; options?: any; } export interface Listener { (arg: T): void | PromiseLike; } export interface ResourceConfig { loader: LoaderDescriptor; reporters: ReporterDescriptor[]; plugins: PluginDescriptor[]; suites: string[]; tsconfig?: string | false; require: never; requires: never; scripts: never; } export interface BenchmarkConfig extends BenchmarkReporterOptions { id: string; } export interface LoaderDescriptor { script: string; options?: { internLoaderPath?: string; [key: string]: any; }; } export interface EnvironmentSpec { browserName: string; [key: string]: any; } export interface RemoteOptions { disableDomUpdates: boolean; }