import type { DependencyKind } from "@boundaries/elements";
import type { DependencyNodeKey, SettingsKey, RulePolicy, RuleShortName, RuleName, RuleMainKey } from "../Shared/Settings.types";
/**
 * Returns the documentation URL for an ESLint rule.
 * @param ruleName The name of the rule.
 * @param anchor Optional anchor to a specific section in the documentation page.
 * @returns The documentation URL for the ESLint rule.
 */
export declare function docsUrl(path: string, anchor?: string): string;
/**
 * Returns the documentation URL for an ESLint rule.
 * @param ruleName The name of the rule.
 * @param anchor Optional anchor to a specific section in the documentation page.
 * @returns The documentation URL for the ESLint rule.
 */
export declare function ruleDocsUrl(ruleName: RuleName, anchor?: string): string;
/**
 * Returns a "more info" message with the documentation URL for a given path.
 * @param path The path to the documentation page.
 * @param anchor Optional anchor to a specific section in the documentation page.
 * @returns A message containing the documentation URL.
 */
export declare function moreInfoLink(path: string, anchor?: string): string;
/**
 * Returns a migration guide link for a specific version upgrade.
 * @param versionFrom - The version being upgraded from.
 * @param versionTo - The version being upgraded to.
 * @param anchor - Optional anchor to a specific section in the migration guide.
 * @returns A message containing the migration guide URL for the specified version upgrade.
 */
export declare function migrationGuideLink(versionFrom: string, versionTo: string, anchor?: string): string;
/**
 * Returns a migration guide link for upgrading from version 5 to version 6.
 * @param anchor - Optional anchor to a specific section in the migration guide.
 * @returns A message containing the migration guide URL for upgrading from version 5 to version 6.
 */
export declare function migrationToV6GuideLink(anchor?: string): string;
/**
 * Returns a migration guide link for upgrading from version 1 to version 2.
 * @param anchor - Optional anchor to a specific section in the migration guide.
 * @returns A message containing the migration guide URL for upgrading from version 1 to version 2.
 */
export declare function migrationToV2GuideLink(anchor?: string): string;
/**
 * Returns a settings information link for the plugin settings documentation.
 * @param anchor - Optional anchor to a specific section in the settings documentation.
 * @returns A message containing the settings information URL for the plugin settings documentation.
 */
export declare function moreInfoSettingsLink(anchor?: string): string;
/**
 * Warns about the deprecation of a rule and encourages migration to the "dependencies" rule.
 * @param ruleName The name of the deprecated rule.
 */
export declare function warnMigrationToDependencies(ruleName: RuleName): void;
/**
 * Type guard to check if a value is a valid DependencyKind.
 * @param value The value to check.
 * @returns True if the value is a valid DependencyKind, false otherwise.
 * @deprecated Use isDependencyKind instead.
 */
export declare function isImportKind(value: unknown): value is DependencyKind;
/**
 * Type guard to check if a value is a valid DependencyNodeKey.
 * @param value The value to check.
 * @returns True if the value is a valid DependencyNodeKey, false otherwise.
 */
export declare function isDependencyNodeKey(value: unknown): value is DependencyNodeKey;
/**
 * Type guard to check if a value is a valid key for the plugin settings.
 * @param value - The value to check.
 * @returns True if the value is a valid settings key, false otherwise.
 */
export declare function isSettingsKey(value: unknown): value is SettingsKey;
/**
 * Type guard to check if a value is a valid RulePolicy.
 * @param value - The value to check.
 * @returns True if the value is a valid RulePolicy, false otherwise.
 */
export declare function isRulePolicy(value: unknown): value is RulePolicy;
/**
 * Type guard to check if a value is a valid rule name including the default plugin prefix.
 * @param value - The value to check.
 * @returns True if the value is a valid rule name with the default plugin prefix, false otherwise.
 */
export declare function isRuleName(value: unknown): value is RuleName;
/**
 * Type guard to check if a value is a valid rule short name.
 * @param value - The value to check.
 * @returns True if the value is a valid rule short name, false otherwise.
 */
export declare function isRuleShortName(value: unknown): value is RuleShortName;
/**
 * Type guard for legacy element descriptors declared as plain strings.
 *
 * @param type - Value to check.
 * @returns `true` when the value is a legacy string descriptor.
 */
export declare function isLegacyType(type: unknown): type is string;
/**
 * Type guard to check if a value is a legacy element selector (string or tuple format).
 * @param value - The value to check.
 * @returns True if the value is a legacy element selector, false otherwise.
 */
export declare function isLegacyElementSelector(value: unknown): value is string | [string, Record<string, unknown>];
/**
 * Detects if legacy element selector syntax is used.
 * @param selector - The selector to check (can be a single selector or an array of selectors).
 * @returns True if legacy syntax was detected, false otherwise.
 */
export declare function detectLegacyElementSelector(selector: unknown): boolean;
/**
 * Detects if legacy template syntax is used in selectors.
 * @param selector - The selector to check (can be a single selector or an array of selectors).
 * @returns True if legacy template syntax was detected, false otherwise.
 */
export declare function detectLegacyTemplateSyntax(selector: unknown): boolean;
/**
 * Returns the canonical main selector key used by schema and option checks.
 *
 * @param key - Optional rule main key (`from`, `to`, or `target`).
 * @returns The same key with default fallback to `from`.
 */
export declare function rulesMainKey(key?: RuleMainKey): RuleMainKey;
