import type { TaskOverrideActionFunction } from "../../../../../types/tasks.js";
import type { FunctionGasSnapshotCheckResult } from "../../function-gas-snapshots.js";
import type { SnapshotCheatcodesCheckResult, RenamedSnapshotGroup } from "../../snapshot-cheatcodes.js";
import type { SuiteResult } from "@nomicfoundation/edr";
interface GasAnalyticsTestActionArguments {
    snapshot: boolean;
    snapshotCheck: boolean;
    grep?: string;
    grepExclude?: string;
    testFiles?: string[];
}
export interface SnapshotResult {
    functionGasSnapshotsWritten: boolean;
    renamedGroups: RenamedSnapshotGroup[];
}
export interface SnapshotCheckResult {
    functionGasSnapshotsCheck: FunctionGasSnapshotCheckResult;
    snapshotCheatcodesCheck: SnapshotCheatcodesCheckResult;
}
declare const runSolidityTests: TaskOverrideActionFunction<GasAnalyticsTestActionArguments>;
/**
 * Whether a `test solidity` run is scoped to a subset of tests (via `--grep`,
 * `--grep-exclude`, or explicit files). On a scoped run, added/missing
 * snapshots are artifacts of the filter rather than real differences, so they
 * aren't reported.
 *
 * An explicit empty pattern (e.g. `--grep ""`) is normalized to "no filter" by
 * the base task before it runs EDR (see `solidity-test/helpers.ts`), so it runs
 * the full suite; treat it as unfiltered here so real differences still
 * surface. (An omitted option already arrives as `undefined`.)
 */
export declare function isFilteredRun(args: {
    grep?: string;
    grepExclude?: string;
    testFiles?: string[];
}): boolean;
export declare function handleSnapshot(basePath: string, suiteResults: SuiteResult[], testsPassed: boolean): Promise<SnapshotResult>;
export declare function logSnapshotResult(result: SnapshotResult, logger?: typeof console.log): void;
export declare function handleSnapshotCheck(basePath: string, suiteResults: SuiteResult[]): Promise<SnapshotCheckResult>;
export declare function logSnapshotCheckResult({ functionGasSnapshotsCheck, snapshotCheatcodesCheck }: SnapshotCheckResult, logger?: typeof console.log, isFiltered?: boolean): void;
export default runSolidityTests;
//# sourceMappingURL=task-action.d.ts.map