import type { Rule } from "eslint";
import type { ExportAllDeclaration, ExportNamedDeclaration, ImportDeclaration, ImportExpression } from "estree";
import type { JSONSchema4 } from "json-schema";
export declare const DEFAULT_MESSAGE_ID = "default";
export declare function createRule({ name, message, schema, fixable, type, create: createFn, }: {
    name: string;
    message: string;
    schema?: JSONSchema4[];
    fixable?: Rule.RuleMetaData["fixable"];
    type?: Rule.RuleMetaData["type"];
    create: (context: Rule.RuleContext) => Rule.RuleListener;
}): {
    name: string;
    rule: Rule.RuleModule;
};
export declare function getRuleName(importMetaUrl: string): string;
export type ImportationNode = ImportDeclaration | ImportExpression | ExportAllDeclaration | ExportNamedDeclaration;
/**
 * Create ESLint RuleListener to check string importation source.
 * @param context ESLint RuleContext
 * @param check the check logic
 * @returns ESLint RuleListener
 */
export declare function create(context: Rule.RuleContext, check: (filename: string, source: string, node: ImportationNode) => boolean): Rule.RuleListener;
export declare function getSourceType(source: string): "local" | "builtin" | "module";
//# sourceMappingURL=common.d.ts.map