/**
 * Builds a TypeScript-specific ESLint configuration object.
 *
 * This function creates a comprehensive TypeScript configuration that includes:
 * - TypeScript parser and plugin
 * - TypeScript-specific rules and recommendations
 * - Import/export rules with TypeScript support
 * - Code quality rules (unicorn, perfectionist, jsdoc)
 * - Custom rule overrides for TypeScript projects
 *
 * @param {import('eslint').Linter.Config['files']} [files] - File patterns to apply this configuration to
 * @param {import('eslint').Linter.Config['languageOptions']} [languageOptions] - Additional language options to merge
 * @returns {import('eslint').Linter.Config} TypeScript ESLint configuration object
 */
export function buildTsConfig(files?: import("eslint").Linter.Config["files"], languageOptions?: import("eslint").Linter.Config["languageOptions"]): import("eslint").Linter.Config;
/**
 * Builds a JavaScript-specific ESLint configuration object.
 *
 * This function creates a JavaScript configuration that includes:
 * - Import/export rules
 * - Code quality rules (unicorn, perfectionist)
 * - Common JavaScript linting rules
 * - Custom rule overrides
 *
 * @param {import('eslint').Linter.Config['files']} [files] - File patterns to apply this configuration to
 * @param {import('eslint').Linter.Config['languageOptions']} [languageOptions] - Additional language options to merge
 * @returns {import('eslint').Linter.Config} JavaScript ESLint configuration object
 */
export function buildJsConfig(files?: import("eslint").Linter.Config["files"], languageOptions?: import("eslint").Linter.Config["languageOptions"]): import("eslint").Linter.Config;
/**
 * Builds a complete ESLint 9 flat configuration array.
 *
 * This function returns a comprehensive ESLint configuration that includes:
 * - Global ignore patterns
 * - Base JavaScript recommended rules
 * - Prettier integration
 * - JSDoc rules
 * - TypeScript configurations for various file types
 * - JavaScript configurations for various file types
 * - Browser and Node.js globals where appropriate
 *
 * @param {{ defaultSourceType?: string }} [options] - Optional configuration options.
 *   - defaultSourceType: Default source type for TypeScript and JavaScript files that don't have source type indicated in the file name extension.
 *
 * @returns {import('eslint').Linter.Config[]} Complete ESLint flat configuration array
 *
 * @example
 * ```javascript
 * // Use the complete configuration
 * const config = buildFullConfig();
 *
 * // Extend with custom rules
 * module.exports = [
 *   ...buildFullConfig(),
 *   { rules: { 'no-console': 'warn' } }
 * ];
 * ```
 */
export function buildESLintConfig(options?: {
    defaultSourceType?: string;
}): import("eslint").Linter.Config[];
/**
 * Customizes an existing ESLint configuration array by applying modifications to matching configurations.
 *
 * This utility function allows you to modify specific configuration objects within an array
 * based on a selector function. Useful for applying project-specific customizations.
 *
 * @param {import('eslint').Linter.Config[]} configArray - Array of ESLint configurations to modify
 * @param {function(import('eslint').Linter.Config): boolean} selector - Function to select which configs to modify
 * @param {function(import('eslint').Linter.Config): void} modifier - Function to apply modifications to selected configs
 *
 * @example
 * ```javascript
 * const { buildESLintConfig, customiseESLintConfig } = require('eslint-config-sensible-prettier-typescript');
 * const { defineConfig } = require('eslint/config');
 * const globals = require('globals');
 *
 * // Modify all TypeScript configurations for applying desired globals
 * const config = buildESLintConfig({ defaultSourceType: 'module' });
 * customiseESLintConfig(
 *   config,
 *   (cfg) => [cfg.files].flat().some((f) => typeof f === 'string' && f.endsWith('*.ts')),
 *   (cfg) => {
 *     cfg.languageOptions.globals = {
 *       ...globals.node,
 *       ...globals.browser,
 *       ...globals.jquery,
 *     };
 *   },
 * );
 *
 * // More overriding
 * module.exports = defineConfig([
 *   {
 *     ignores: ['dist', 'coverage', 'report', 'node_modules'],
 *   },
 *   ...config,
 *   {
 *     rules: {
 *       'unicorn/filename-case': 'off',
 *     },
 *   },
 * ]);
 * ```
 */
export function customiseESLintConfig(configArray: import("eslint").Linter.Config[], selector: (arg0: import("eslint").Linter.Config) => boolean, modifier: (arg0: import("eslint").Linter.Config) => void): void;
//# sourceMappingURL=config.d.mts.map