import { Options, Context } from '../../types/build.js';
import { LogFn } from '../../types/config.js';
import '@deepkit/type';
import '@storm-software/build-tools/types';
import '@storm-software/config/types';
import '@stryke/env/get-env-paths';
import '@stryke/env/types';
import '@stryke/types/base';
import '@stryke/types/configuration';
import '@stryke/types/package-json';
import '@stryke/types/tsconfig';
import 'hookable';
import 'jiti';
import 'magic-string';
import 'typescript';
import 'unimport';
import '@storm-software/config-tools/types';

interface EventLintCheckCompleted {
    durationInSeconds: number;
    eslintVersion: string | null;
    lintedFilesCount?: number;
    lintFix?: boolean;
    buildLint?: boolean;
    eslintPluginErrorsCount?: number;
    eslintPluginWarningsCount?: number;
    stormStackRulesEnabled: {
        [ruleName: `storm-stack/${string}`]: "off" | "warn" | "error";
    };
}
declare function lint<TOptions extends Options = Options>(log: LogFn, context: Context<TOptions>, eslintrcFile: string | null, { lintDuringBuild, eslintOptions, reportErrorsOnly, maxWarnings, formatter, outputFile }: {
    lintDuringBuild: boolean;
    eslintOptions: any;
    reportErrorsOnly: boolean;
    maxWarnings: number;
    formatter: string | null;
    outputFile: string | null;
}): Promise<string | null | {
    output: string | null;
    isError: boolean;
    eventInfo: EventLintCheckCompleted;
}>;
declare function runLintCheck<TOptions extends Options = Options>(log: LogFn, context: Context<TOptions>, opts: {
    lintDuringBuild?: boolean;
    eslintOptions?: any;
    reportErrorsOnly?: boolean;
    maxWarnings?: number;
    formatter?: string | null;
    outputFile?: string | null;
    type?: "base" | "recommended" | "strict";
}): ReturnType<typeof lint>;

export { type EventLintCheckCompleted, runLintCheck };
