import type { ComAtprotoLabelDefs } from "@atcute/atproto"; import type { AppBskyLabelerDefs } from "@atcute/bluesky"; import type { ResourceUri } from "@atcute/lexicons"; import type { Bot } from "../bot/Bot.js"; import { Profile } from "./Profile.js"; /** * Data used to construct a Labeler class. */ export interface LabelerData { /** The labeler record's AT URI. */ uri: string; /** The labeler record's CID. */ cid: string; /** The labeler's user profile. */ profile: Profile; /** The number of likes the labeler has. */ likeCount?: number | undefined; /** When the labeler was indexed by the AppView. */ indexedAt: Date; /** The label policies published by the labeler. */ labelDefinitions?: Array | undefined; /** Any labels on the labeler record. */ labels?: Array | undefined; } /** * A Bluesky labeler profile. */ export declare class Labeler { protected bot: Bot; /** The labeler record's AT URI. */ uri: ResourceUri; /** The labeler record's CID. */ cid: string; /** The labeler's user profile. */ profile: Profile; /** The number of likes the labeler has. */ likeCount?: number; /** When the labeler was indexed by the AppView. */ indexedAt: Date; /** The label policies published by the labeler. */ labelDefinitions: Array; /** Any labels on the labeler record. */ labels?: Array; /** * @param data Labeler data. * @param bot The active Bot instance. */ constructor({ uri, cid, profile, likeCount, indexedAt, labelDefinitions, labels }: LabelerData, bot: Bot); /** Subscribe to the labeler. */ subscribe(): void; /** Unsubscribe from the labeler. */ unsubscribe(): void; /** * Constructs an instance from a LabelerView. * @param view The LabelerView to construct from. * @param bot The active Bot instance. */ static fromView(view: AppBskyLabelerDefs.LabelerView | AppBskyLabelerDefs.LabelerViewDetailed, bot: Bot): Labeler; }