import { TSESTree, TSESLint } from "@typescript-eslint/utils"; /** * The first Obsidian version that supports declarative settings * (`getSettingDefinitions()` and `PluginSettingTab#update()`). */ export declare const DECLARATIVE_MIN_VERSION = "1.13.0"; type ClassNode = TSESTree.ClassDeclaration | TSESTree.ClassExpression; type ClassMember = TSESTree.MethodDefinition | TSESTree.PropertyDefinition; /** * Whether `node` is a class that directly extends `PluginSettingTab`. * * Mirrors the detection used by the other settings-tab rules: only a bare * `Identifier` superclass is matched, so member-expression superclasses such as * `obsidian.PluginSettingTab` are intentionally out of scope. */ export declare function isPluginSettingTab(node: ClassNode): boolean; /** * Find a member named `name` on the class body, covering both method * definitions (`display() {}`) and class fields holding a function * (`display = () => {}`). Returns the member node, or `null` if absent. */ export declare function findClassMember(node: ClassNode, name: string): ClassMember | null; /** * Resolve the plugin's `minAppVersion`, preferring an explicit rule option and * falling back to `manifest.json`. Returns a valid semver string, or `null` * when it can't be determined or parsed (so callers can no-op rather than * throw on a malformed version). */ export declare function resolveMinAppVersion(context: TSESLint.RuleContext): string | null; /** * Shared schema for rules that accept a `minAppVersion` override. */ export declare const minAppVersionSchema: { type: "object"; properties: { minAppVersion: { type: "string"; description: string; }; }; additionalProperties: boolean; }[]; export {};