import type { Literal, NamedNode, Quad } from 'n3';
import { Term } from '@rdfjs/types';
import { Config } from './config';
import { ShaclPropertyTemplate } from './property-template';
export declare class ShaclNodeTemplate {
    id: Term;
    label?: Literal | undefined;
    parent?: ShaclNodeTemplate | ShaclPropertyTemplate;
    nodeKind?: NamedNode;
    targetClass?: NamedNode;
    or?: Term[];
    xone?: Term[];
    extendedShapes: Set<ShaclNodeTemplate>;
    properties: Record<string, ShaclPropertyTemplate[]>;
    owlImports: Set<NamedNode>;
    config: Config;
    constructor(id: Term, config: Config, parent?: ShaclNodeTemplate | ShaclPropertyTemplate);
}
export declare function mergeQuads(template: ShaclNodeTemplate, quads: Quad[]): ShaclNodeTemplate;
export declare function mergeOverriddenProperties(node: ShaclNodeTemplate): void;
