import type { ComAtprotoLabelDefs } from "@atcute/atproto"; import type { AppBskyGraphDefs, AppBskyRichtextFacet } from "@atcute/bluesky"; import type { ResourceUri } from "@atcute/lexicons"; import type { BaseBotGetMethodOptions, Bot } from "../bot/Bot.js"; import { FeedGenerator } from "./FeedGenerator.js"; import { List } from "./List.js"; import { Profile } from "./Profile.js"; /** * Data used to construct a StarterPack class. */ export interface StarterPackData { /** The starter pack's name. */ name: string; /** The starter pack's AT URI. */ uri: string; /** The starter pack's CID. */ cid: string; /** The starter pack's description. */ description?: string | undefined; /** Any facets associated with the starter pack's description. */ descriptionFacets?: Array | undefined; /** The starter pack's creator. */ creator: Profile; /** The user list associated with the starter pack. */ userList?: List | undefined; /** The starter pack's user list's AT URI. */ userListUri: string; /** Feeds associated with the starter pack. */ feeds?: Array | undefined; /** The starter pack's feeds' AT URIs. */ feedUris?: Array | undefined; /** The number of users who joined using the starter pack in the past week. */ joinedWeekCount?: number | undefined; /** The number of users who joined using the starter pack in all time. */ joinedAllTimeCount?: number | undefined; /** When the starter pack was indexed by the AppView. */ indexedAt: Date; /** Any labels on the starter pack record. */ labels?: Array | undefined; } /** * A Bluesky starter pack. */ export declare class StarterPack { protected bot: Bot; /** The starter pack's name. */ name: string; /** The starter pack's AT URI. */ uri: ResourceUri; /** The starter pack's CID. */ cid: string; /** The starter pack's description. */ description?: string; /** Any facets associated with the starter pack's description. */ descriptionFacets?: Array; /** The starter pack's creator. */ creator: Profile; /** The user list associated with the starter pack. */ userList?: List; /** The starter pack's user list's AT URI. */ private userListUri; /** Feeds associated with the starter pack. */ feeds?: Array; /** The starter pack's feeds' AT URIs. */ private feedUris?; /** The number of users who joined using the starter pack in the past week. */ joinedWeekCount?: number; /** The number of users who joined using the starter pack in all time. */ joinedAllTimeCount?: number; /** When the starter pack was indexed by the AppView. */ indexedAt: Date; /** Any labels on the starter pack record. */ labels?: Array; /** * @param data Starter pack data. * @param bot The active Bot instance. */ constructor({ name, uri, cid, description, creator, descriptionFacets, userList, userListUri, feeds, feedUris, joinedWeekCount, joinedAllTimeCount, indexedAt, labels, }: StarterPackData, bot: Bot); /** * Fetches the user list associated with the starter pack. * @param options The fetch options. * @returns The user list. */ fetchList({ force, ...options }?: StarterPackFetchListOptions): Promise; /** * Fetches the feeds associated with the starter pack. * @param options The fetch options. * @returns The feeds. */ fetchFeeds({ force, ...options }?: StarterPackFetchFeedsOptions): Promise>; /** * Constructs an instance from a StarterPackView. * @param view The StarterPackView to construct from. * @param bot The active Bot instance. */ static fromView(view: AppBskyGraphDefs.StarterPackView | AppBskyGraphDefs.StarterPackViewBasic, bot: Bot): StarterPack; } /** * Options for the {@link StarterPack#fetchList} method. */ export interface StarterPackFetchListOptions extends BaseBotGetMethodOptions { /** Whether to fetch items even if they are already cached. */ force?: boolean; } /** * Options for the {@link StarterPack#fetchFeeds} method. */ export interface StarterPackFetchFeedsOptions extends BaseBotGetMethodOptions { /** Whether to fetch items even if they are already cached. */ force?: boolean; }