import * as _typescript_eslint_utils_ts_eslint from '@typescript-eslint/utils/ts-eslint';

type MESSAGE_IDS$1 = 'useToStrictEqual' | 'suggestReplaceWithStrictEqual';

type MESSAGE_IDS = 'tooManyArgs' | 'notEnoughArgs' | 'modifierUnknown' | 'matcherNotFound' | 'matcherNotCalled' | 'asyncMustBeAwaited' | 'promisesWithAsyncAssertionsMustBeAwaited';

type MessageIds$1 = 'noDoneCallback' | 'suggestWrappingInPromise' | 'useAwaitInsteadOfCallback';

type MESSAGE_ID$2 = 'missingFunction' | 'pending' | 'pendingSuite' | 'pendingTest' | 'disabledSuite' | 'disabledTest';

type Options$2 = [
    {
        max: number;
    }
];

type MESSAGE_ID$1 = 'restrictedViMethod' | 'restrictedViMethodWithMessage';
type Options$1 = [Record<string, string | null>];

declare enum TestCaseName {
    'fit' = "fit",
    'it' = "it",
    'test' = "test",
    'xit' = "xit",
    'xtest' = "xtest",
    'bench' = "bench"
}
declare enum HookName {
    'beforeAll' = "beforeAll",
    'beforeEach' = "beforeEach",
    'afterAll' = "afterAll",
    'afterEach' = "afterEach"
}

type MessageIds = 'consistentMethod' | 'consistentMethodWithinDescribe';

type MESSAGE_ID = 'multipleTestTitle' | 'multipleDescribeTitle';

type Options = [
    {
        max: number;
    }
];

declare const _default: {
    rules: {
        "prefer-lowercase-title": _typescript_eslint_utils_ts_eslint.RuleModule<"lowerCaseTitle", [Partial<{
            ignore: string[];
            allowedPrefixes: string[];
            ignoreTopLevelDescribe: boolean;
            lowercaseFirstCharacterOnly: boolean;
        }>], _typescript_eslint_utils_ts_eslint.RuleListener>;
        "max-nested-describe": _typescript_eslint_utils_ts_eslint.RuleModule<"maxNestedDescribe", Options, _typescript_eslint_utils_ts_eslint.RuleListener>;
        "no-identical-title": _typescript_eslint_utils_ts_eslint.RuleModule<MESSAGE_ID, [], _typescript_eslint_utils_ts_eslint.RuleListener>;
        "no-focused-tests": _typescript_eslint_utils_ts_eslint.RuleModule<"noFocusedTests", [], _typescript_eslint_utils_ts_eslint.RuleListener>;
        "no-conditional-tests": _typescript_eslint_utils_ts_eslint.RuleModule<"noConditionalTests", [], _typescript_eslint_utils_ts_eslint.RuleListener>;
        "expect-expect": _typescript_eslint_utils_ts_eslint.RuleModule<"noAssertions", [{
            assertFunctionNames: string[];
            additionalTestBlockFunctions: string[];
        }], _typescript_eslint_utils_ts_eslint.RuleListener>;
        "consistent-test-it": _typescript_eslint_utils_ts_eslint.RuleModule<MessageIds, [Partial<{
            fn: TestCaseName.it | TestCaseName.test;
            withinDescribe: TestCaseName.it | TestCaseName.test;
        }>], _typescript_eslint_utils_ts_eslint.RuleListener>;
        "prefer-to-be": _typescript_eslint_utils_ts_eslint.RuleModule<"useToBe" | "useToBeUndefined" | "useToBeDefined" | "useToBeNull" | "useToBeNaN", [], _typescript_eslint_utils_ts_eslint.RuleListener>;
        "no-hooks": _typescript_eslint_utils_ts_eslint.RuleModule<"unexpectedHook", [Partial<{
            allow: readonly HookName[];
        }>], _typescript_eslint_utils_ts_eslint.RuleListener>;
        "no-restricted-vi-methods": _typescript_eslint_utils_ts_eslint.RuleModule<MESSAGE_ID$1, Options$1, _typescript_eslint_utils_ts_eslint.RuleListener>;
        "consistent-test-filename": _typescript_eslint_utils_ts_eslint.RuleModule<"consistentTestFilename", [Partial<{
            pattern: string;
            allTestPattern: string;
        }>], _typescript_eslint_utils_ts_eslint.RuleListener>;
        "max-expects": _typescript_eslint_utils_ts_eslint.RuleModule<"maxExpect", Options$2, _typescript_eslint_utils_ts_eslint.RuleListener>;
        "no-alias-methods": _typescript_eslint_utils_ts_eslint.RuleModule<"noAliasMethods", [], _typescript_eslint_utils_ts_eslint.RuleListener>;
        "no-commented-out-tests": _typescript_eslint_utils_ts_eslint.RuleModule<"noCommentedOutTests", [], _typescript_eslint_utils_ts_eslint.RuleListener>;
        "no-conditional-expect": _typescript_eslint_utils_ts_eslint.RuleModule<"noConditionalExpect", [], _typescript_eslint_utils_ts_eslint.RuleListener>;
        "no-conditional-in-test": _typescript_eslint_utils_ts_eslint.RuleModule<"noConditionalInTest", [], _typescript_eslint_utils_ts_eslint.RuleListener>;
        "no-disabled-tests": _typescript_eslint_utils_ts_eslint.RuleModule<MESSAGE_ID$2, [], _typescript_eslint_utils_ts_eslint.RuleListener>;
        "no-done-callback": _typescript_eslint_utils_ts_eslint.RuleModule<MessageIds$1, [], _typescript_eslint_utils_ts_eslint.RuleListener>;
        "no-duplicate-hooks": _typescript_eslint_utils_ts_eslint.RuleModule<"noDuplicateHooks", [], _typescript_eslint_utils_ts_eslint.RuleListener>;
        "no-large-snapshots": _typescript_eslint_utils_ts_eslint.RuleModule<"noSnapShot" | "tooLongSnapShot", [{
            maxSize?: number | undefined;
            inlineMaxSize?: number | undefined;
            allowedSnapshots?: Record<string, (string | RegExp)[]> | undefined;
        }], _typescript_eslint_utils_ts_eslint.RuleListener>;
        "no-interpolation-in-snapshots": _typescript_eslint_utils_ts_eslint.RuleModule<"noInterpolationInSnapshots", [], _typescript_eslint_utils_ts_eslint.RuleListener>;
        "no-mocks-import": _typescript_eslint_utils_ts_eslint.RuleModule<"noMocksImport", [], _typescript_eslint_utils_ts_eslint.RuleListener>;
        "no-restricted-matchers": _typescript_eslint_utils_ts_eslint.RuleModule<"restrictedChain" | "restrictedChainWithMessage", Record<string, string | null>[], _typescript_eslint_utils_ts_eslint.RuleListener>;
        "no-standalone-expect": _typescript_eslint_utils_ts_eslint.RuleModule<"noStandaloneExpect", {
            additionalTestBlockFunctions?: string[] | undefined;
        }[], _typescript_eslint_utils_ts_eslint.RuleListener>;
        "no-test-prefixes": _typescript_eslint_utils_ts_eslint.RuleModule<"usePreferredName", [], _typescript_eslint_utils_ts_eslint.RuleListener>;
        "no-test-return-statement": _typescript_eslint_utils_ts_eslint.RuleModule<"noTestReturnStatement", [], _typescript_eslint_utils_ts_eslint.RuleListener>;
        "no-import-node-test": _typescript_eslint_utils_ts_eslint.RuleModule<"noImportNodeTest", [], _typescript_eslint_utils_ts_eslint.RuleListener>;
        "prefer-called-with": _typescript_eslint_utils_ts_eslint.RuleModule<"preferCalledWith", [], _typescript_eslint_utils_ts_eslint.RuleListener>;
        "valid-title": _typescript_eslint_utils_ts_eslint.RuleModule<"titleMustBeString" | "emptyTitle" | "duplicatePrefix" | "accidentalSpace" | "disallowedWord" | "mustNotMatch" | "mustMatch" | "mustNotMatchCustom" | "mustMatchCustom", {
            ignoreTypeOfDescribeName?: boolean | undefined;
            allowArguments?: boolean | undefined;
            disallowedWords?: string[] | undefined;
            mustNotMatch?: string | [matcher: string, message?: string | undefined] | Partial<Record<"test" | "describe" | "it", string | [matcher: string, message?: string | undefined]>> | undefined;
            mustMatch?: string | [matcher: string, message?: string | undefined] | Partial<Record<"test" | "describe" | "it", string | [matcher: string, message?: string | undefined]>> | undefined;
        }[], _typescript_eslint_utils_ts_eslint.RuleListener>;
        "valid-expect": _typescript_eslint_utils_ts_eslint.RuleModule<MESSAGE_IDS, [Partial<{
            alwaysAwait: boolean;
            asyncMatchers: string[];
            minArgs: number;
            maxArgs: number;
        }>], _typescript_eslint_utils_ts_eslint.RuleListener>;
        "prefer-to-be-falsy": _typescript_eslint_utils_ts_eslint.RuleModule<"preferToBeFalsy", [], _typescript_eslint_utils_ts_eslint.RuleListener>;
        "prefer-to-be-object": _typescript_eslint_utils_ts_eslint.RuleModule<"preferToBeObject", [], _typescript_eslint_utils_ts_eslint.RuleListener>;
        "prefer-to-be-truthy": _typescript_eslint_utils_ts_eslint.RuleModule<"preferToBeTruthy", [], _typescript_eslint_utils_ts_eslint.RuleListener>;
        "prefer-to-have-length": _typescript_eslint_utils_ts_eslint.RuleModule<"preferToHaveLength", [], _typescript_eslint_utils_ts_eslint.RuleListener>;
        "prefer-equality-matcher": _typescript_eslint_utils_ts_eslint.RuleModule<"useEqualityMatcher" | "suggestEqualityMatcher", [], _typescript_eslint_utils_ts_eslint.RuleListener>;
        "prefer-strict-equal": _typescript_eslint_utils_ts_eslint.RuleModule<MESSAGE_IDS$1, [], _typescript_eslint_utils_ts_eslint.RuleListener>;
        "prefer-expect-resolves": _typescript_eslint_utils_ts_eslint.RuleModule<"expectResolves", [], _typescript_eslint_utils_ts_eslint.RuleListener>;
        "prefer-each": _typescript_eslint_utils_ts_eslint.RuleModule<"preferEach", [], _typescript_eslint_utils_ts_eslint.RuleListener>;
        "prefer-hooks-on-top": _typescript_eslint_utils_ts_eslint.RuleModule<"noHookOnTop", [], _typescript_eslint_utils_ts_eslint.RuleListener>;
        "prefer-hooks-in-order": _typescript_eslint_utils_ts_eslint.RuleModule<"reorderHooks", [], _typescript_eslint_utils_ts_eslint.RuleListener>;
        "require-local-test-context-for-concurrent-snapshots": _typescript_eslint_utils_ts_eslint.RuleModule<"requireLocalTestContext", [], _typescript_eslint_utils_ts_eslint.RuleListener>;
        "prefer-mock-promise-shorthand": _typescript_eslint_utils_ts_eslint.RuleModule<"useMockShorthand", [], _typescript_eslint_utils_ts_eslint.RuleListener>;
        "prefer-snapshot-hint": _typescript_eslint_utils_ts_eslint.RuleModule<"missingHint", [("always" | "multi" | undefined)?], _typescript_eslint_utils_ts_eslint.RuleListener>;
        "valid-describe-callback": _typescript_eslint_utils_ts_eslint.RuleModule<"nameAndCallback" | "secondArgumentMustBeFunction" | "noAsyncDescribeCallback" | "unexpectedDescribeArgument" | "unexpectedReturnInDescribe", [], _typescript_eslint_utils_ts_eslint.RuleListener>;
        "require-top-level-describe": _typescript_eslint_utils_ts_eslint.RuleModule<"unexpectedHook" | "tooManyDescribes" | "unexpectedTestCase", [Partial<{
            maxNumberOfTopLevelDescribes: number;
        }>], _typescript_eslint_utils_ts_eslint.RuleListener>;
        "require-to-throw-message": _typescript_eslint_utils_ts_eslint.RuleModule<"addErrorMessage", [], _typescript_eslint_utils_ts_eslint.RuleListener>;
        "require-hook": _typescript_eslint_utils_ts_eslint.RuleModule<"useHook", [{
            allowedFunctionCalls?: readonly string[] | undefined;
        }], _typescript_eslint_utils_ts_eslint.RuleListener>;
        "prefer-todo": _typescript_eslint_utils_ts_eslint.RuleModule<"emptyTest" | "unimplementedTest", [], _typescript_eslint_utils_ts_eslint.RuleListener>;
        "prefer-spy-on": _typescript_eslint_utils_ts_eslint.RuleModule<"useViSpayOn", [], _typescript_eslint_utils_ts_eslint.RuleListener>;
        "prefer-comparison-matcher": _typescript_eslint_utils_ts_eslint.RuleModule<"useToBeComparison", [], _typescript_eslint_utils_ts_eslint.RuleListener>;
        "prefer-to-contain": _typescript_eslint_utils_ts_eslint.RuleModule<"useToContain", [], _typescript_eslint_utils_ts_eslint.RuleListener>;
        "prefer-expect-assertions": _typescript_eslint_utils_ts_eslint.RuleModule<"hasAssertionsTakesNoArguments" | "assertionsRequiresOneArgument" | "assertionsRequiresNumberArgument" | "haveExpectAssertions" | "suggestAddingHasAssertions" | "suggestAddingAssertions" | "suggestRemovingExtraArguments", {
            onlyFunctionsWithAsyncKeyword?: boolean | undefined;
            onlyFunctionsWithExpectInLoop?: boolean | undefined;
            onlyFunctionsWithExpectInCallback?: boolean | undefined;
        }[], _typescript_eslint_utils_ts_eslint.RuleListener>;
    };
    configs: {
        all: {
            plugins: string[];
            rules: {};
        };
        recommended: {
            plugins: string[];
            rules: {};
        };
    };
    environments: {
        env: {
            globals: {
                suite: boolean;
                test: boolean;
                describe: boolean;
                it: boolean;
                expect: boolean;
                assert: boolean;
                vitest: boolean;
                vi: boolean;
                beforeAll: boolean;
                afterAll: boolean;
                beforeEach: boolean;
                afterEach: boolean;
            };
        };
    };
};

export { _default as default };
