export type AttributeObject = {
    attribute: string;
    kasUrl?: string;
    pubKey?: string;
    displayName?: string;
    isDefault?: boolean;
    jwt?: string;
};
export declare class AttributeSet {
    attributes: AttributeObject[];
    defaultAttribute?: AttributeObject;
    constructor();
    /**
     * Check if attribute is in the list
     * @param attribute URL of the attribute
     * @return if attribute is in the set
     */
    has(attribute?: string): boolean;
    /**
     * Get an attribute by URL
     * @param  attribute URL of the attribute
     * @return attribute in object form, if found
     */
    get(attribute?: string): AttributeObject | null;
    /**
     * Get all the attributes.
     * @return default attribute in object form or null
     */
    getDefault(): AttributeObject | null;
    /**
     * Get the default attribute, if it exists.
     * @return return all the attribute urls
     */
    getUrls(): string[];
    /**
     * Add an attribute to the set. Should be idempotent.
     * @param attrObj AttributeObject to add, in non-JWT form
     * @return the attribute object if successful, or null
     */
    addAttribute(attrObj: AttributeObject): AttributeObject | null;
    /**
     * Delete an attribute from the set. Should be idempotent.
     * @param attrUrl - URL of Attribute object to delete.
     * @return The attribute object if successful or null if not
     */
    deleteAttribute(attrUrl?: string): AttributeObject | null;
    /**
     * Add a list of attributes in object form
     * @param  attributes List of attribute objects as provided in an EntityObject
     * @param  easPublicKey EAS public key for decrypting the JWTs
     * @return list of attribute objects
     */
    addAttributes(attributes?: AttributeObject[]): (AttributeObject | null)[];
    /**
     * Add an attribute in JWT form = { jwt: <string jwt> }
     * @param  {Object} jwtAttribute - Attribute object in JWT form.
     * @return {Object} - Decrypted and added attribute object
     */
    addJwtAttribute(jwtAttribute: {
        jwt: string;
    }): AttributeObject | null;
}
//# sourceMappingURL=attribute-set.d.ts.map