import { ParserServices, TSESLint, TSESTree } from "@typescript-eslint/utils";
import { Connector } from "@hi18n/tools-core";
export declare type ParserSpec = string | ParserDependency;
export declare type ParserDependency = {
    definition: ParserDefinition;
    filePath: string;
};
export declare type ParserDefinition = ESLintParser | GenericParser;
export declare type ESLintParser = {
    parseForESLint: (source: string, options: TSESLint.ParserOptions) => ESLintParserResult<TSESTree.Program>;
};
export declare type GenericParser = {
    parse: (source: string, options: TSESLint.ParserOptions) => TSESTree.Program;
};
export declare type ESLintParserResult<T> = {
    ast: T;
    services?: ParserServices | undefined;
    visitorKeys?: Record<string, string[]> | undefined;
    scopeManager?: TSESLint.Scope.ScopeManager | undefined;
};
export declare type ConnectorSpec = string | ConnectorDependency;
export declare type ConnectorDependency = {
    connector: Connector;
};
export declare 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