import { TwoslashGenericFunction } from 'twoslash-protocol';
import { Linter } from 'eslint';

interface CreateTwoslashESLintOptions {
    /**
     * Flat configs for ESLint
     */
    eslintConfig: Linter.FlatConfig[];
    /**
     * Custom code transform before sending to ESLint for verification
     *
     * This does not affect the code rendering
     */
    eslintCodePreprocess?: (code: string) => string;
    /**
     * The current working directory for ESLint
     */
    cwd?: string;
    /**
     * Include the parsed docs in the result
     *
     * @default true
     */
    includeDocs?: boolean;
    /**
     * Merge error messages that has same range
     * @default true
     */
    mergeMessages?: boolean;
}
declare function createTwoslasher(options: CreateTwoslashESLintOptions): TwoslashGenericFunction;

export { type CreateTwoslashESLintOptions, createTwoslasher };
