/// <reference types="webdriverio/webdriverio-core" />
/// <reference types="@wdio/cucumber-framework" />
/// <reference types="webdriver" />
export declare type Hooks = {
    [k in keyof WebdriverIO.HookFunctions]: WebdriverIO.HookFunctions[k] | NonNullable<WebdriverIO.HookFunctions[k]>[];
};
export declare type Capabilities = (WebDriver.DesiredCapabilities | WebDriver.W3CCapabilities)[] | WebdriverIO.MultiRemoteCapabilities;
export declare type Capability = WebDriver.DesiredCapabilities | WebDriver.W3CCapabilities | WebdriverIO.MultiRemoteCapabilities;
export interface ConfigOptions extends Omit<WebdriverIO.Config, 'capabilities' | keyof WebdriverIO.Hooks>, Hooks {
    automationProtocol?: 'webdriver' | 'devtools' | './protocol-stub';
    spec?: string[];
    suite?: string[];
    capabilities?: Capabilities;
    specFileRetryAttempts?: number;
    cucumberFeaturesWithLineNumbers?: string[];
    specFileRetriesDeferred?: boolean;
    specFileRetries?: number;
    maxInstances?: number;
}
export interface SingleConfigOption extends Omit<ConfigOptions, 'capabilities'> {
    capabilities: Capability;
}
export declare type DefaultOptions<T> = {
    [k in keyof T]?: {
        type: 'string' | 'number' | 'object' | 'boolean' | 'function';
        default?: T[k];
        required?: boolean;
        validate?: (option: T[k]) => void;
        match?: RegExp;
    };
};
//# sourceMappingURL=types.d.ts.map