import { type ParserServices, TSESLint, TSESTree } from "@typescript-eslint/utils";
import type { Connector } from "@hi18n/tools-core";
export type ParserSpec = string | TSESLint.Parser.LooseParserModule;
export type ParserDefinition = ESLintParser | GenericParser;
export type ESLintParser = {
    parseForESLint: (source: string, options: TSESLint.ParserOptions) => ESLintParserResult<TSESTree.Program>;
};
export type GenericParser = {
    parse: (source: string, options: TSESLint.ParserOptions) => TSESTree.Program;
};
export type ESLintParserResult<T> = {
    ast: T;
    services?: ParserServices | undefined;
    visitorKeys?: Record<string, string[]> | undefined;
    scopeManager?: TSESLint.Scope.ScopeManager | undefined;
};
export type ConnectorSpec = string | ConnectorDependency;
export type ConnectorDependency = {
    connector: Connector;
};
export type Config = {
    configPath: string;
    include?: string[] | undefined;
    exclude?: string[] | undefined;
    parser: ParserSpec;
    parserOptions: TSESLint.ParserOptions;
    extensions: string[];
    extensionsToRemove: string[];
    baseUrl?: string | undefined;
    paths?: Record<string, string[]> | undefined;
    connector: ConnectorDependency | undefined;
    connectorOptions: unknown;
};
export declare function loadConfig(cwd: string): Promise<Config>;
//# sourceMappingURL=config.d.ts.map