import { NamedNode, Store } from 'n3';
import { Term } from '@rdfjs/types';
import { ClassInstanceProvider, ResourceLinkProvider } from './plugin';
import { Theme } from './theme';
import { ShaclNodeTemplate } from './node-template';
import { ShaclPropertyTemplate } from './property-template';
export declare class ElementAttributes {
    shapes: string | null;
    shapesUrl: string | null;
    shapeSubject: string | null;
    values: string | null;
    valuesUrl: string | null;
    /**
     * @deprecated Use valuesSubject instead
     */
    valueSubject: string | null;
    valuesSubject: string | null;
    valuesNamespace: string;
    valuesGraph: string | null;
    view: string | null;
    language: string | null;
    loading: string;
    proxy: string | null;
    ignoreOwlImports: string | null;
    collapse: string | null;
    hierarchyColors: string | null;
    submitButton: string | null;
    generateNodeShapeReference: string;
    showNodeIds: string | null;
    showRootShapeLabel: string | null;
    dense: string;
    useShadowRoot: string;
}
export declare class Config {
    attributes: ElementAttributes;
    classInstanceProvider: ClassInstanceProvider | undefined;
    resourceLinkProvider: ResourceLinkProvider | undefined;
    editMode: boolean;
    languages: string[];
    lists: Record<string, Term[]>;
    groups: string[];
    form: HTMLElement;
    renderedNodes: Set<string>;
    valuesGraphId: NamedNode | undefined;
    hierarchyColorsStyleSheet: CSSStyleSheet | undefined;
    private _store;
    private _theme;
    private _nodeTemplates;
    private _propertyTemplates;
    validator: any;
    providedConformingResourceIds: Record<string, Set<string>>;
    providedResources: Record<string, string>;
    constructor(form: HTMLElement);
    reset(): void;
    updateAttributes(elem: HTMLElement): void;
    static dataAttributes(): Array<string>;
    private buildTemplateKey;
    registerNodeTemplate(template: ShaclNodeTemplate): void;
    registerPropertyTemplate(template: ShaclPropertyTemplate): void;
    getNodeTemplateIds(): Set<string>;
    getNodeTemplate(id: Term, parent: ShaclNodeTemplate | ShaclPropertyTemplate): ShaclNodeTemplate;
    getPropertyTemplate(id: Term, parent: ShaclNodeTemplate): ShaclPropertyTemplate;
    get nodeTemplates(): ShaclNodeTemplate[];
    get theme(): Theme;
    set theme(theme: Theme);
    get store(): Store;
    set store(store: Store);
}
