import type { AST as VAST } from 'vue-eslint-parser';
import { LocaleMessages } from './locale-messages';
import type { RuleContext, TemplateListener, RuleListener, CustomBlockVisitorFactory } from '../types';
export declare function defineTemplateBodyVisitor(context: RuleContext, templateBodyVisitor: TemplateListener, scriptVisitor?: RuleListener): RuleListener;
export declare function getAttribute(node: VAST.VElement, name: string): VAST.VAttribute | null;
export declare function getDirective(node: VAST.VElement, name: string, argument: string): VAST.VDirective | null;
export type StaticLiteral = VAST.ESLintLiteral | VAST.ESLintTemplateLiteral;
export declare function isStaticLiteral(node: VAST.Node | null): node is StaticLiteral;
export declare function getStaticLiteralValue(node: StaticLiteral): VAST.ESLintLiteral['value'];
export declare function getLocaleMessages(context: RuleContext, options?: {
    ignoreMissingSettingsError?: boolean;
}): LocaleMessages;
export declare function defineCustomBlocksVisitor(context: RuleContext, jsonRule: CustomBlockVisitorFactory, yamlRule: CustomBlockVisitorFactory): RuleListener;
export type VueObjectType = 'mark' | 'export' | 'definition' | 'instance' | 'variable' | 'components-option';
export declare function getVueObjectType(context: RuleContext, node: VAST.ESLintObjectExpression): VueObjectType | null;
export declare function getScriptSetupElement(context: RuleContext): VAST.VElement | null;
export declare function isVElement(node: VAST.VElement | VAST.VExpressionContainer | VAST.VText): node is VAST.VElement;
export declare function isI18nBlock(node: VAST.VElement | VAST.VExpressionContainer | VAST.VText): node is VAST.VElement & {
    name: 'i18n';
};
export declare function getStaticAttributes(element: VAST.VElement): {
    [name: string]: string | undefined;
};
export declare function skipTSAsExpression<T extends VAST.Node>(node: T): T;
export declare function compositingVisitors(visitor: RuleListener, ...visitors: RuleListener[]): RuleListener;
