import type { SensitiveString, ResolvedConfigurationVariable } from "../../../types/config.js";
declare module "../../../types/config.js" {
    interface TestPathsUserConfig {
        solidity?: string;
    }
    interface TestPathsConfig {
        solidity: string;
    }
}
declare module "../../../types/test.js" {
    interface SolidityTestFsPermissionsUserConfig {
        readWriteFile?: string[];
        readFile?: string[];
        writeFile?: string[];
        dangerouslyReadWriteDirectory?: string[];
        readDirectory?: string[];
        dangerouslyWriteDirectory?: string[];
    }
    interface SolidityTestInvariantUserConfig {
        failurePersistDir?: string;
        runs?: number;
        depth?: number;
        failOnRevert?: boolean;
        callOverride?: boolean;
        dictionaryWeight?: number;
        includeStorage?: boolean;
        includePushBytes?: boolean;
        shrinkRunLimit?: number;
    }
    interface SolidityTestFuzzUserConfig {
        failurePersistDir?: string;
        failurePersistFile?: string;
        runs?: number;
        maxTestRejects?: number;
        seed?: string;
        dictionaryWeight?: number;
        includeStorage?: boolean;
        includePushBytes?: boolean;
        showLogs?: boolean;
    }
    interface SolidityTestForkingUserConfig {
        url?: SensitiveString;
        blockNumber?: number | bigint;
        rpcEndpoints?: Record<string, SensitiveString>;
    }
    interface SolidityTestProfileUserConfig {
        fsPermissions?: SolidityTestFsPermissionsUserConfig;
        isolate?: boolean;
        ffi?: boolean;
        allowInternalExpectRevert?: boolean;
        from?: string;
        txOrigin?: string;
        initialBalance?: bigint;
        blockBaseFeePerGas?: bigint;
        coinbase?: string;
        blockTimestamp?: bigint;
        prevRandao?: bigint;
        gasLimit?: bigint;
        blockGasLimit?: number | bigint | false;
        transactionGasCap?: number | bigint | false;
        fuzz?: SolidityTestFuzzUserConfig;
        invariant?: SolidityTestInvariantUserConfig;
        forking?: SolidityTestForkingUserConfig;
        eip712Types?: {
            include?: string[];
            exclude?: string[];
        };
    }
    interface SolidityTestProfilesUserConfig {
        profiles: Record<string, SolidityTestProfileUserConfig>;
    }
    type SolidityTestUserConfig = SolidityTestProfileUserConfig | SolidityTestProfilesUserConfig;
    interface HardhatTestUserConfig {
        solidity?: SolidityTestUserConfig;
    }
    interface SolidityTestFsPermissionsConfig {
        readWriteFile?: string[];
        readFile?: string[];
        writeFile?: string[];
        dangerouslyReadWriteDirectory?: string[];
        readDirectory?: string[];
        dangerouslyWriteDirectory?: string[];
    }
    interface SolidityTestInvariantConfig {
        failurePersistDir?: string;
        runs?: number;
        depth?: number;
        failOnRevert?: boolean;
        callOverride?: boolean;
        dictionaryWeight?: number;
        includeStorage?: boolean;
        includePushBytes?: boolean;
        shrinkRunLimit?: number;
    }
    interface SolidityTestFuzzConfig {
        failurePersistDir?: string;
        failurePersistFile?: string;
        runs?: number;
        maxTestRejects?: number;
        seed: string;
        dictionaryWeight?: number;
        includeStorage?: boolean;
        includePushBytes?: boolean;
        showLogs?: boolean;
    }
    interface SolidityTestForkingConfig {
        url?: ResolvedConfigurationVariable;
        blockNumber?: bigint;
        rpcEndpoints?: Record<string, ResolvedConfigurationVariable>;
    }
    interface SolidityTestProfileConfig {
        rpcCachePath: string;
        fsPermissions?: SolidityTestFsPermissionsConfig;
        isolate?: boolean;
        ffi?: boolean;
        allowInternalExpectRevert?: boolean;
        from?: string;
        txOrigin?: string;
        initialBalance?: bigint;
        blockBaseFeePerGas?: bigint;
        coinbase?: string;
        blockTimestamp?: bigint;
        prevRandao?: bigint;
        gasLimit?: bigint;
        blockGasLimit?: number | bigint | false;
        transactionGasCap?: number | bigint | false;
        fuzz: SolidityTestFuzzConfig;
        invariant?: SolidityTestInvariantConfig;
        forking?: SolidityTestForkingConfig;
        eip712Types: {
            include: string[];
            exclude: string[];
        };
    }
    interface SolidityTestConfig {
        profiles: Record<string, SolidityTestProfileConfig>;
    }
    interface HardhatTestConfig {
        solidity: SolidityTestConfig;
    }
}
//# sourceMappingURL=type-extensions.d.ts.map