import { BlankNode, NamedNode, Store } from 'n3';
import { Term } from '@rdfjs/types';
import { ShaclNode } from './node';
import { Config } from './config';
import { ShaclPropertyTemplate } from './property-template';
import { RokitSelect } from '@ro-kit/ui-widgets';
export declare class ShaclProperty extends HTMLElement {
    template: ShaclPropertyTemplate;
    addButton: RokitSelect | undefined;
    container: HTMLElement;
    constructor(shaclSubject: BlankNode | NamedNode, parent: ShaclNode, config: Config, valueSubject?: NamedNode | BlankNode);
    addPropertyInstance(value?: Term): HTMLElement;
    updateControls(): void;
    toRDF(graph: Store, subject: NamedNode | BlankNode): void;
    getRdfClassToLinkOrCreate(): NamedNode<string> | undefined;
    isValueValid(value: Term): boolean;
    createAddButton(): RokitSelect;
}
export declare function createPropertyInstance(template: ShaclPropertyTemplate, value?: Term, forceRemovable?: boolean, linked?: boolean): HTMLElement;
