import type { Services, Frameworks } from "@wdio/types";
import type { Capabilities, RemoteCapability } from "@wdio/types/build/Capabilities";
import type { Testrunner as TestRunnerOptions } from "@wdio/types/build/Options";
import type { PickleStep } from "@cucumber/messages";
import { Test, TestResult } from "@wdio/types/build/Frameworks";
import { Browser, MultiRemoteBrowser } from "webdriverio";
import TestResultContainer from "./test-result-container";
import { Pickle } from "@cucumber/messages";
interface MsTeamsServiceOptions extends Services.ServiceOption {
    webhookURL: string;
    failingTestsOnly?: boolean;
    message?: string;
    timeout?: number;
}
export default class MsTeamsService implements Services.ServiceInstance {
    readonly testResultContainer: TestResultContainer;
    private _webhook;
    private _browser?;
    private _capabilities;
    private _config;
    private readonly _failingTestsOnly;
    private readonly _message?;
    constructor(serviceOptions: MsTeamsServiceOptions, capabilities: Capabilities, config: TestRunnerOptions);
    before(capabilities: RemoteCapability, specs: string[], browser: Browser<"async"> | MultiRemoteBrowser<"async">): void;
    afterTest(test: Test, context: any, result: TestResult): Promise<void>;
    afterStep(step: PickleStep, scenario: Pickle, result: Frameworks.PickleResult): Promise<void>;
    after(): Promise<void>;
}
/**
 * Filters out any top level tests that have no failing test results. This function modifies the provided
 * container parameter and doesn't return anything
 * @param container
 */
export declare function filterPassedTests(container: TestResultContainer): void;
export {};
//# sourceMappingURL=ms-teams-service.d.ts.map