import { Shape } from '../../shapes/Shape.js';
import { NamedNode } from '../../models.js';
export declare class Pet extends Shape {
    static targetClass: NamedNode;
    get bestFriend(): Pet;
    set bestFriend(val: Pet);
}
export declare class Person extends Shape {
    static targetClass: NamedNode;
    get name(): string;
    set name(val: string);
    get bestFriend(): Person;
    set bestFriend(val: Person);
    get hobby(): string;
    set hobby(val: string);
    get friends(): import("../../collections/ShapeValuesSet.js").ShapeValuesSet<Person>;
    get pets(): import("../../collections/ShapeValuesSet.js").ShapeValuesSet<Pet>;
    get firstPet(): Pet;
    set firstPet(val: Pet);
    get pluralTestProp(): import("../../collections/ShapeValuesSet.js").ShapeValuesSet<Person>;
    get birthDate(): Date;
    set birthDate(nativeDate: Date);
    get isRealPerson(): boolean;
    set isRealPerson(val: boolean);
}
export declare class Dog extends Pet {
    static targetClass: NamedNode;
    get guardDogLevel(): number;
    set guardDogLevel(val: number);
}
export declare const testEntities: (Person | Dog)[];
export declare const testProps: {
    name: NamedNode;
    nickName: NamedNode;
    bestFriend: NamedNode;
    hobby: NamedNode;
    hasFriend: NamedNode;
    birthDate: NamedNode;
};
export declare const testTypes: {
    person: NamedNode;
};
/**
 *
 * @param startPromise if provided it will be awaited before running the tests
 */
export declare const runQueryTests: (startPromise?: Promise<void>) => void;
/**
 * View 1: PersonOverview, shows the name of person + its friends as PersonAvatar
 * View 2: PersonAvatar, shows name + avatar.source
 * The combined query
 */
