import type { Services, Capabilities, Options, Frameworks } from '@wdio/types'; import type { BrowserstackConfig, MultiRemoteAction } from './types.js'; import type { Pickle, Feature, ITestCaseHookParameter, CucumberHook } from './cucumber-types.js'; export default class BrowserstackService implements Services.ServiceInstance { private _caps; private _config; private _sessionBaseUrl; private _failReasons; private _hookFailReasons; private _pureTestFailReasons; private _scenariosThatRan; private _failureStatuses; private _browser?; private _suiteTitle?; private _suiteFile?; private _fullTitle?; private _options; private _specsRan; private _observability; private _currentTest?; private _insightsHandler?; private _accessibility; private _accessibilityHandler?; private _percy; private _percyCaptureMode; private _percyHandler?; private _turboScale; constructor(options: BrowserstackConfig & Options.Testrunner, _caps: Capabilities.ResolvedTestrunnerCapabilities, _config: Options.Testrunner); _updateCaps(fn: (caps: WebdriverIO.Capabilities) => void): void; beforeSession(config: Omit, capabilities: WebdriverIO.Capabilities): Promise; before(caps: Capabilities.ResolvedTestrunnerCapabilities, specs: string[], browser: WebdriverIO.Browser): Promise; /** * Set the default job name at the suite level to make sure we account * for the cases where there is a long running `before` function for a * suite or one that can fail. * Don't do this for Jasmine because `suite.title` is `Jasmine__TopLevel__Suite` * and `suite.fullTitle` is `undefined`, so no alternative to use for the job name. */ beforeSuite(suite: Frameworks.Suite): Promise; beforeHook(test: Frameworks.Test | CucumberHook, context: unknown): Promise; afterHook(test: Frameworks.Test | CucumberHook, context: unknown, result: Frameworks.TestResult): Promise; beforeTest(test: Frameworks.Test): Promise; afterTest(test: Frameworks.Test, context: never, results: Frameworks.TestResult): Promise; after(result: number): Promise; /** * For CucumberJS */ beforeFeature(uri: string, feature: Feature): Promise; /** * Runs before a Cucumber Scenario. * @param world world object containing information on pickle and test step */ beforeScenario(world: ITestCaseHookParameter): Promise; afterScenario(world: ITestCaseHookParameter): Promise; beforeStep(step: Frameworks.PickleStep, scenario: Pickle): Promise; afterStep(step: Frameworks.PickleStep, scenario: Pickle, result: Frameworks.PickleResult): Promise; onReload(oldSessionId: string, newSessionId: string): Promise; _isAppAutomate(): boolean; _updateJob(requestBody: unknown): Promise; _multiRemoteAction(action: MultiRemoteAction): Promise; _update(sessionId: string, requestBody: unknown): Promise | Promise; _printSessionURL(): Promise; private _setSessionName; private _setAnnotation; private _executeCommand; private saveWorkerData; } //# sourceMappingURL=service.d.ts.map