export default DiscoEntity;
/**
 * @class
 * @namespace _converse.DiscoEntity
 * @memberOf _converse
 *
 * A Disco Entity is a JID addressable entity that can be queried for features.
 *
 * See XEP-0030: https://xmpp.org/extensions/xep-0030.html
 */
declare class DiscoEntity extends Model<import("@converse/skeletor").ModelAttributes> {
    constructor(attributes?: Partial<import("@converse/skeletor").ModelAttributes>, options?: import("@converse/skeletor").ModelOptions);
    initialize(_: any, options: any): void;
    waitUntilFeaturesDiscovered: Promise<any> & {
        isResolved: boolean;
        isPending: boolean;
        isRejected: boolean;
        resolve: (value: any) => void;
        reject: (reason?: any) => void;
    };
    waitUntilItemsFetched: Promise<any> & {
        isResolved: boolean;
        isPending: boolean;
        isRejected: boolean;
        resolve: (value: any) => void;
        reject: (reason?: any) => void;
    };
    dataforms: Collection<Model<import("@converse/skeletor").ModelAttributes>>;
    features: Collection<Model<import("@converse/skeletor").ModelAttributes>>;
    fields: Collection<Model<import("@converse/skeletor").ModelAttributes>>;
    items: Collection<Model<import("@converse/skeletor").ModelAttributes>>;
    identities: Collection<Model<import("@converse/skeletor").ModelAttributes>>;
    /**
     * Returns a Promise which resolves with a map indicating
     * whether a given identity is provided by this entity.
     * @method _converse.DiscoEntity#getIdentity
     * @param {String} category - The identity category
     * @param {String} type - The identity type
     */
    getIdentity(category: string, type: string): Promise<Model<import("@converse/skeletor").ModelAttributes>>;
    /**
     * Returns a Promise which resolves with a map indicating
     * whether a given feature is supported.
     * @method _converse.DiscoEntity#getFeature
     * @param {String} feature - The feature that might be supported.
     */
    getFeature(feature: string): Promise<this>;
    onFeatureAdded(feature: any): void;
    onFieldAdded(field: any): void;
    /**
     * @param {import('./types').FetchEntityFeaturesOptions} options
     */
    fetchFeatures(options: import("./types").FetchEntityFeaturesOptions): Promise<void>;
    /**
     * @param {import('./types').DiscoInfoOptions} [options]
     */
    queryInfo(options?: import("./types").DiscoInfoOptions): Promise<void>;
    /**
     * @param {Element} stanza
     */
    onDiscoItems(stanza: Element): void;
    queryForItems(): Promise<void>;
    /**
     * @param {Element} stanza
     */
    onInfo(stanza: Element): Promise<void>;
}
import { Model } from '@converse/skeletor';
import { Collection } from '@converse/skeletor';
//# sourceMappingURL=entity.d.ts.map