import { ModifierContext } from "../grammar";
import { ApexAccessModifier, ApexTypeRef, ApexTypeRefSource } from "../types";
import { ApexSyntaxTreeVisitor } from "./syntaxTreeVisitor";
export declare abstract class DeclarationVisitor<T extends {
    access?: ApexAccessModifier;
    modifiers?: string[];
    refs?: ApexTypeRef[];
}> extends ApexSyntaxTreeVisitor<T> {
    constructor(state: T);
    visitModifier(ctx: ModifierContext): T;
    protected addModifier(modifier: string): void;
    protected visitAccessModifier(ctx: ModifierContext): boolean;
    protected addRef(refs: ApexTypeRef | ApexTypeRef[] | undefined | null, source?: ApexTypeRefSource): void;
}
//# sourceMappingURL=declarationVisitor.d.ts.map