import { WorldTree } from '../tree/WorldTree';
export declare class PropertyManager {
    private propCache;
    /**
     *
     * @param resourceUrl The target resource's url. This must be an **object url** or null. If null, it will return the props for the whole scene.
     * @param bypassCache Forces a full rescan if set to true.
     * @returns a list of property infos containing basic information for filtering purposes.
     */
    getProperties(tree: WorldTree, resourceUrl?: string, bypassCache?: boolean): Promise<PropertyInfo[]>;
}
/**
 * PropertyInfo types represent all of the properties that you can filter on in the viewer
 */
export interface PropertyInfo {
    /**
     * Property identifier, flattened
     */
    key: string;
    /**
     * Total number of objects that have this property
     */
    objectCount: number;
    type: 'number' | 'string';
}
export interface NumericPropertyInfo extends PropertyInfo {
    type: 'number';
    /**
     * Absolute min/max values that are available for this property
     */
    min: number;
    max: number;
    /**
     * An array of pairs of object IDs and their actual values for that property
     */
    valueGroups: {
        value: number;
        id: string;
    }[];
    /**
     * User defined/filtered min/max that is bound within min/max above
     */
    passMin: number | null;
    passMax: number | null;
}
export interface StringPropertyInfo extends PropertyInfo {
    type: 'string';
    /**
     * An array of pairs of object IDs and their actual values for that property
     */
    valueGroups: {
        value: string;
        ids: string[];
    }[];
}
