import { ElementDeclarationNode, SyntaxNode } from '../../../parser/nodes';
import { ArgumentBinderRule, BinderRule, SettingListBinderRule } from '../types';
import { CompileError } from '../../../errors';
import { default as SymbolFactory } from '../../symbol/factory';
export default abstract class ElementBinder {
    protected abstract subfield: {
        arg: ArgumentBinderRule;
        settingList: SettingListBinderRule;
    };
    protected abstract settingList: SettingListBinderRule;
    protected injectionBinderRule?: BinderRule;
    private errors;
    private declarationNode;
    constructor(declarationNode: ElementDeclarationNode, errors: CompileError[]);
    bind(): void;
    private bindSettingList;
    private bindBody;
    private bindSubfield;
    private bindPartialInjection;
    private scanAndBind;
    private bindFragments;
    private resolveIndexStack;
    protected logError(node: SyntaxNode, message: string, ignoreError: boolean): void;
    resolveInjections(symbolFactory: SymbolFactory): void;
}
