import type { SubredditAboutRulesResponse } from '@devvit/protos/json/devvit/plugin/redditapi/subreddits/subreddits_msg.js'; import type { CommunityListWidget_CommunityData as CommunityData, GetWidgetsResponse_WidgetItem as WidgetItem, GetWidgetsResponse_WidgetItem_PostFlairTemplate as PostFlairTemplateData } from '@devvit/protos/json/devvit/plugin/redditapi/widgets/widgets_msg.js'; import type { AddButtonWidgetRequest, AddCalendarWidgetRequest, AddCommunityListWidgetRequest, AddCustomWidgetRequest, AddImageWidgetRequest, AddPostFlairWidgetRequest, AddTextAreaWidgetRequest, CalendarWidgetConfiguration, UpdateButtonWidgetRequest, UpdateCalendarWidgetRequest, UpdateCommunityListWidgetRequest, UpdateCustomWidgetRequest, UpdateImageWidgetRequest, UpdatePostFlairWidgetRequest, UpdateTextAreaWidgetRequest, WidgetButton, WidgetImage, WidgetStyles } from '@devvit/protos/json/devvit/plugin/redditapi/widgets/widgets_msg.js'; export type AddWidgetData = (AddImageWidgetRequest & { type: 'image'; }) | (AddCalendarWidgetRequest & { type: 'calendar'; }) | (AddTextAreaWidgetRequest & { type: 'textarea'; }) | (AddButtonWidgetRequest & { type: 'button'; }) | (AddCommunityListWidgetRequest & { type: 'community-list'; }) | (AddPostFlairWidgetRequest & { type: 'post-flair'; }) | (AddCustomWidgetRequest & { type: 'custom'; }); export type UpdateWidgetData = (UpdateImageWidgetRequest & { type: 'image'; }) | (UpdateCalendarWidgetRequest & { type: 'calendar'; }) | (UpdateTextAreaWidgetRequest & { type: 'textarea'; }) | (UpdateButtonWidgetRequest & { type: 'button'; }) | (UpdateCommunityListWidgetRequest & { type: 'community-list'; }) | (UpdatePostFlairWidgetRequest & { type: 'post-flair'; }) | (UpdateCustomWidgetRequest & { type: 'custom'; }); export declare class Widget { #private; constructor(widgetData: WidgetItem, subredditName: string); get id(): string; get name(): string; get subredditName(): string; toJSON(): Pick; delete(): Promise; } export declare class ImageWidget extends Widget { #private; constructor(widgetData: WidgetItem, subredditName: string); get images(): WidgetImage[]; toJSON(): ReturnType & Pick; } export declare class CalendarWidget extends Widget { #private; constructor(widgetData: WidgetItem, subredditName: string); get googleCalendarId(): string; get configuration(): CalendarWidgetConfiguration; get styles(): WidgetStyles; toJSON(): ReturnType & Pick; } export declare class TextAreaWidget extends Widget { #private; constructor(widgetData: WidgetItem, subredditName: string); get text(): string; get styles(): WidgetStyles; toJSON(): ReturnType & Pick; } export declare class ButtonWidget extends Widget { #private; constructor(widgetData: WidgetItem, subredditName: string); get buttons(): WidgetButton[]; get description(): string; get styles(): WidgetStyles; toJSON(): ReturnType & Pick; } export declare class CommunityListWidget extends Widget { #private; constructor(widgetData: WidgetItem, subredditName: string); get communities(): CommunityData[]; get styles(): WidgetStyles; toJSON(): ReturnType & Pick; } export declare class PostFlairWidget extends Widget { #private; constructor(widgetData: WidgetItem, subredditName: string); get styles(): WidgetStyles; get templates(): PostFlairTemplateData[]; get display(): 'list' | 'cloud'; toJSON(): ReturnType & Pick; } export declare class CustomWidget extends Widget { #private; constructor(widgetData: WidgetItem, subredditName: string); get images(): WidgetImage[]; get text(): string; get stylesheetUrl(): string; get height(): number; get css(): string; toJSON(): ReturnType & Pick; } type SubredditRule = { description: string; priority: number; shortName: string; violationReason: string; }; export declare class SubredditRulesWidget extends Widget { #private; constructor(subredditAboutRulesRsp: SubredditAboutRulesResponse, widgetData: WidgetItem, subredditName: string); get rules(): SubredditRule[]; toJSON(): ReturnType & Pick; } export {}; //# sourceMappingURL=Widget.d.ts.map