import { TBaseActionParams, TLimitParams } from '../params'; export interface TPost { url: string; time: string; type: TPostType; repostText: string | null; text: string | null; images: ReadonlyArray | null; hasVideo: boolean; hasPoll: boolean; reactionsCount: number; commentsCount: number; repostsCount: number; comments?: ReadonlyArray; reactions?: ReadonlyArray; } export declare const POST_TYPE: { readonly original: "original"; readonly repost: "repost"; }; export type TPostType = (typeof POST_TYPE)[keyof typeof POST_TYPE]; export interface TReaction { postUrl: string; time: string; reactionType: TReactionType; } export declare const REACTION_TYPE: { readonly like: "like"; readonly celebrate: "celebrate"; readonly support: "support"; readonly love: "love"; readonly insightful: "insightful"; readonly funny: "funny"; }; export type TReactionType = (typeof REACTION_TYPE)[keyof typeof REACTION_TYPE]; export interface TComment { postUrl: string; time: string; text: string | null; image: string | null; reactionsCount: number; } export interface TReactToPostParams extends TBaseActionParams { postUrl: string; type: TReactionType; companyUrl?: string; } export interface TCommentOnPostParams extends TBaseActionParams { postUrl: string; text: string; companyUrl?: string; } export declare const POST_COMMENTER_TYPE: { readonly person: "person"; readonly company: "company"; }; export type TPostCommenterType = (typeof POST_COMMENTER_TYPE)[keyof typeof POST_COMMENTER_TYPE]; export interface TPostComment { commenterUrl: string; commenterName: string; commenterHeadline: string; commenterType: TPostCommenterType; time: string; text: string | null; image: string | null; isReply: boolean; reactionsCount: number; repliesCount: number; } export declare const POST_ENGAGER_TYPE: { readonly person: "person"; readonly company: "company"; }; export type TPostEngagerType = (typeof POST_ENGAGER_TYPE)[keyof typeof POST_ENGAGER_TYPE]; export interface TPostReaction { engagerUrl: string; engagerName: string; engagerHeadline: string; engagerType: TPostEngagerType; type: TReactionType; } export declare const POST_COMMENTS_SORT: { readonly mostRelevant: "mostRelevant"; readonly mostRecent: "mostRecent"; }; export type TPostCommentsSort = (typeof POST_COMMENTS_SORT)[keyof typeof POST_COMMENTS_SORT]; export interface TPostCommentsRetrievalConfig extends TLimitParams { replies?: boolean; sort?: TPostCommentsSort; } export type TPostReactionsRetrievalConfig = TLimitParams; export interface TBaseFetchPostParams extends TBaseActionParams { postUrl: string; retrieveComments?: boolean; retrieveReactions?: boolean; } export interface TBaseFetchPostParamsWide extends TBaseFetchPostParams { retrieveComments: true; retrieveReactions: true; } export type TFetchPostParams = T & { commentsRetrievalConfig?: T['retrieveComments'] extends true ? TPostCommentsRetrievalConfig | undefined : never; reactionsRetrievalConfig?: T['retrieveReactions'] extends true ? TPostReactionsRetrievalConfig | undefined : never; }; export type TFetchPostResult = TPost; export declare const ATTACHMENT_TYPE: { readonly image: "image"; readonly video: "video"; readonly document: "document"; }; export type TAttachmentType = (typeof ATTACHMENT_TYPE)[keyof typeof ATTACHMENT_TYPE]; export interface TCreatePostAttachment { url: string; type: TAttachmentType; name?: string; } export interface TCreatePostParams extends TBaseActionParams { text: string; attachments?: ReadonlyArray; companyUrl?: string; } export interface TCreatePostResult { postUrl: string; } //# sourceMappingURL=post.d.ts.map