import type { CommandArgs, HookStats, Tag, TestStats } from '@wdio/reporter';
import type { Options } from '@wdio/types';
import type { FixtureResult, Label, StatusDetails, TestResult } from 'allure-js-commons';
import { Status as AllureStatus } from 'allure-js-commons';
import CompoundError from './compoundError.js';
import type { WDIORunnable } from './types.js';
/**
 * Get allure test status by TestStat object
 * @param test {Object} - TestStat object
 * @param config {Object} - wdio config object
 * @private
 */
export declare const getTestStatus: (test: TestStats | HookStats, config?: Options.Testrunner) => AllureStatus;
/**
 * Check is object is empty
 * @param object {Object}
 * @private
 */
export declare const isEmpty: (object: never) => boolean;
/**
 * Is mocha/jasmine beforeEach hook
 * @param title {String} - hook title
 * @returns {boolean}
 * @private
 */
export declare const isBeforeEachTypeHook: (title: string) => boolean;
/**
 * Is mocha/jasmine beforeAll / beforeEach hook
 * @param title {String} - hook title
 * @returns {boolean}
 * @private
 */
export declare const isBeforeTypeHook: (title: string) => boolean;
/**
 * Is mocha/jasmine beforeEach / afterEach hook
 * @param title {String} - hook title
 * @returns {boolean}
 * @private
 */
export declare const isEachTypeHooks: (title: string) => boolean;
/**
 * Is mocha/jasmine beforeAll / afterAll hook
 * @param title {String} - hook title
 * @returns {boolean}
 * @private
 */
export declare const isAllTypeHooks: (title: string) => boolean;
/**
 * Properly format error from different test runners
 * @param {object} test - TestStat object
 * @returns {Object} - error object
 * @private
 */
export declare const getErrorFromFailedTest: (test: TestStats | HookStats) => Error | CompoundError | undefined;
export declare const getStatusDetailsFromFailedTest: (test: TestStats | HookStats) => StatusDetails | undefined;
export declare const cleanCucumberHooks: (hook: FixtureResult | TestResult) => void;
/**
 * Substitute task id to link template
 * @param {string} template - link template
 * @param {string} id - task id
 * @returns {string} - link after substitution
 * @private
 */
export declare const getLinkByTemplate: (template: string | undefined, id: string) => string;
export declare const getRunnablePath: (runnable: WDIORunnable) => string[];
export declare const findLast: <T>(arr: Array<T>, predicate: (el: T) => boolean) => T | undefined;
export declare const findLastIndex: <T>(arr: T[], predicate: (el: T) => boolean) => number;
export declare const isScreenshotCommand: (command: CommandArgs) => boolean;
export declare const convertSuiteTagsToLabels: (tags: string[] | Tag[]) => Label[];
export declare const last: <T>(arr: T[]) => T;
export declare const getCid: () => string;
export declare const fromUrlish: (p: string) => string;
export declare const absPosix: (p: string) => string;
export declare const relNoSlash: (p?: string) => string;
export declare const toFullName: (file: string, title: string) => string;
export declare function isObject(value: unknown): value is Record<string, unknown>;
export declare function isEmptyObject(value: unknown): boolean;
export declare const toPackageLabel: (p?: string) => string;
export declare const toPackageLabelCucumber: (p?: string) => string;
//# sourceMappingURL=utils.d.ts.map