import type { Config } from "jest";
import { defaultCoverageExclusions, defaultThresholds, mergeConfigs, mergeThresholds, worktreeTestPathIgnorePatterns } from "./base.js";
export { defaultCoverageExclusions, defaultThresholds, mergeConfigs, mergeThresholds, worktreeTestPathIgnorePatterns, };
/**
 * Selects the React Native Jest resolver path appropriate for the installed
 * Expo SDK. Prefers the SDK 56 location when `@react-native/jest-preset` is
 * present, otherwise falls back to the SDK 54 location.
 * @param canResolve - Resolution predicate (defaults to a real project-scoped
 * `require.resolve` check); injectable for testing both SDKs.
 * @returns The resolver module path for the project's installed SDK.
 */
export declare const selectExpoJestResolver: (canResolve?: (specifier: string) => boolean) => string;
/**
 * Options for configuring the Expo Jest config factory.
 */
interface ExpoJestOptions {
    /** Coverage thresholds (merged defaults + project overrides) */
    readonly thresholds?: Config["coverageThreshold"];
    /**
     * Prefix applied to the positive `collectCoverageFrom` globs. Defaults to
     * `""` (source at the project root). Set to `"src/"` for projects that adopt
     * the Expo SDK 55+/56 `/src` directory convention so coverage is collected
     * from `src/components`, `src/features`, etc. The negative (exclusion) globs
     * are anchored with a leading globstar and are unaffected by this prefix.
     */
    readonly sourceRoot?: string;
}
/**
 * Creates a Jest configuration for Expo/React Native projects.
 * @param options - Configuration options for threshold overrides
 * @param options.thresholds - Coverage thresholds (merged defaults + project overrides)
 * @param options.sourceRoot - Prefix for coverage globs (e.g. `"src/"` for the SDK 55+/56 `/src` convention; defaults to `""`)
 * @returns Jest config object with jsdom environment, babel-jest transform, and React Native resolver
 * @remarks Avoids `jest-expo` preset to prevent jsdom + `react-native/jest/setup.js`
 * incompatibility. Manually configures haste, resolver, and transform to match the
 * preset's behavior without the problematic window redefinition.
 */
export declare const getExpoJestConfig: ({ thresholds, sourceRoot, }?: ExpoJestOptions) => Config;
//# sourceMappingURL=expo.d.ts.map