import { HSMLEntity } from "../hsml-types";
import { EntitySchemaMap } from "../types.ts";
import { QueryResponse } from "@versesdev/proto-kortex/hstp/v1/hstp.ts";
export declare const elementListToSchemaMap: (oldSchemaMap: EntitySchemaMap, elements: HSMLEntity[]) => Partial<Record<string, ({
    swid: string;
    name: string;
    description: string;
    schema: string;
    transform: {
        position: {
            x: number;
            y: number;
            z: number;
        };
        rotation: {
            x: number;
            y: number;
            z: number;
            w: number;
        };
    };
    volume: {
        x: number;
        y: number;
        z: number;
    };
    __archived: boolean | null;
    semantic_space_name?: string | undefined;
} | {
    swid: string;
    name: string;
    schema: string[];
    volume: {
        x: number;
        y: number;
        z: number;
    };
    __archived: boolean | null;
    files: {
        name: string;
        scale: {
            x: number;
            y: number;
            z: number;
        };
        uri: string;
    }[];
    hull: {
        uri: string;
    };
} | {
    swid: string;
    name: string;
    schema: string[];
    transform: {
        position: {
            x: number;
            y: number;
            z: number;
        };
        rotation: {
            x: number;
            y: number;
            z: number;
            w: number;
        };
        scale: {
            x: number;
            y: number;
            z: number;
        };
    };
    volume: {
        x: number;
        y: number;
        z: number;
    };
    __archived: boolean | null;
    files: {
        name: string;
        scale: {
            x: number;
            y: number;
            z: number;
        };
        uri: string;
    }[];
    hull: {
        uri: string;
    };
})[]>>;
export declare class BidirectionalMap<Key, Value> {
    private map;
    private reverseMap;
    constructor(map?: Map<Key, Value>);
    get size(): number;
    get entries(): [Key, Value][];
    clone(): BidirectionalMap<Key, Value>;
    get(key: Key): Value;
    getKey(value: Value): Key;
    has(key: Key): boolean;
    set(key: Key, value: Value): Map<Key, Value>;
    delete(key: Key): boolean;
}
export declare const crawlObjectAndReturnIf: <T>(obj: T, predicate: (value: any) => boolean) => any;
export declare function isResultResponse(response: QueryResponse['response']): response is {
    oneofKind: "result";
    result: string;
};
export declare function isEmpty(obj: object): boolean;
export declare function deepCopy(obj: object): any;
