import { IRdoNodeWrapper, NodeTypeInfo, ISourceNodeWrapper, IGlobalNodeOptions, INodeSyncOptions } from '../..';
import { IRdoInternalNodeWrapper } from '../../types';
import { EventEmitter } from '../../infrastructure/event-emitter';
import { NodeChange } from '../../types/event-types';
import { MutableNodeCache } from '../../infrastructure/mutable-node-cache';
export declare abstract class RdoNWBase<S, D> implements IRdoNodeWrapper<S, D> {
    private _typeInfo;
    private _key;
    private _mutableNodeCache;
    private _parent;
    private _wrappedSourceNode;
    private _matchingNodeOptions;
    private _globalNodeOptions;
    private _targetedOptionMatchersArray;
    private _eventEmitter;
    constructor({ typeInfo, key, mutableNodeCache, wrappedParentRdoNode, wrappedSourceNode, matchingNodeOptions, globalNodeOptions, targetedOptionMatchersArray, eventEmitter, }: {
        typeInfo: NodeTypeInfo;
        key: string | number | undefined;
        mutableNodeCache: MutableNodeCache;
        wrappedParentRdoNode: IRdoInternalNodeWrapper<S, D> | undefined;
        wrappedSourceNode: ISourceNodeWrapper<S, D>;
        matchingNodeOptions: INodeSyncOptions<S, D> | undefined;
        globalNodeOptions: IGlobalNodeOptions | undefined;
        targetedOptionMatchersArray: Array<INodeSyncOptions<S, D>>;
        eventEmitter: EventEmitter<NodeChange>;
    });
    protected get eventEmitter(): EventEmitter<NodeChange>;
    protected get mutableNodeCache(): MutableNodeCache;
    get ignore(): boolean;
    get key(): string | number | undefined;
    get wrappedParentRdoNode(): IRdoInternalNodeWrapper<S, D> | undefined;
    get typeInfo(): NodeTypeInfo;
    get wrappedSourceNode(): ISourceNodeWrapper<S, D>;
    get globalNodeOptions(): IGlobalNodeOptions | undefined;
    private _nodeOptions;
    getNodeOptions(): INodeSyncOptions<S, D> | null;
    abstract get isLeafNode(): any;
    abstract get value(): any;
    abstract smartSync(): any;
    abstract childElementCount(): any;
    abstract getSourceNodeKeys(): any;
    abstract getSourceNodeItem(key: string | number): any;
}
