import type { EntityInstanceType, EntityObjectType } from './Entity.js';
import type { EntityConstructor, EntityInterface } from './Entity.types.js';
import { Options, Selector } from './Nymph.types.js';
import Entity from './Entity.js';
export declare class MockNymphDriver {
    private nymph;
    constructor(nymph: MockNymph);
    getEntity<T extends EntityConstructor = EntityConstructor>(options: Options<T> & {
        return: 'guid';
    }, ...selectors: Selector[]): Promise<string | null>;
    getEntity<T extends EntityConstructor = EntityConstructor>(options: Options<T> & {
        return: 'object';
    }, ...selectors: Selector[]): Promise<EntityObjectType<T> | null>;
    getEntity<T extends EntityConstructor = EntityConstructor>(options: Options<T>, ...selectors: Selector[]): Promise<EntityInstanceType<T> | null>;
    getEntity<T extends EntityConstructor = EntityConstructor>(options: Options<T> & {
        return: 'guid';
    }, guid: string): Promise<string | null>;
    getEntity<T extends EntityConstructor = EntityConstructor>(options: Options<T> & {
        return: 'object';
    }, guid: string): Promise<EntityObjectType<T> | null>;
    getEntity<T extends EntityConstructor = EntityConstructor>(options: Options<T>, guid: string): Promise<EntityInstanceType<T> | null>;
}
export declare class MockNymph {
    private entityClasses;
    driver: MockNymphDriver;
    Tilmeld: any;
    Entity: typeof Entity;
    constructor();
    addEntityClass<T extends EntityConstructor>(EntityClass: T): T;
    getEntityClass(className: string): EntityConstructor;
    getEntityClass<T extends EntityConstructor>(className: T): T;
    getEntityClassByEtype(etype: string): EntityConstructor;
    getEntity<T extends EntityConstructor = EntityConstructor>(options: Options<T> & {
        return: 'guid';
    }, ...selectors: Selector[]): Promise<string | null>;
    getEntity<T extends EntityConstructor = EntityConstructor>(options: Options<T> & {
        return: 'object';
    }, ...selectors: Selector[]): Promise<EntityObjectType<T> | null>;
    getEntity<T extends EntityConstructor = EntityConstructor>(options: Options<T>, ...selectors: Selector[]): Promise<EntityInstanceType<T> | null>;
    getEntity<T extends EntityConstructor = EntityConstructor>(options: Options<T> & {
        return: 'guid';
    }, guid: string): Promise<string | null>;
    getEntity<T extends EntityConstructor = EntityConstructor>(options: Options<T> & {
        return: 'object';
    }, guid: string): Promise<EntityObjectType<T> | null>;
    getEntity<T extends EntityConstructor = EntityConstructor>(options: Options<T>, guid: string): Promise<EntityInstanceType<T> | null>;
    saveEntity(entity: EntityInterface): Promise<boolean>;
    deleteEntity(entity: EntityInterface): Promise<boolean>;
}
