/**
 * @internal
 * Adds a tracked property to the post model.
 *
 * Intended to be used only in the plugin API.
 *
 * @param {string} propertyKey - The key of the property to track.
 */
export function _addTrackedPostProperty(propertyKey: string): void;
/**
 * Clears all tracked properties added using the API
 *
 * USE ONLY FOR TESTING PURPOSES.
 */
export function clearAddedTrackedPostProperties(): void;
export default class Post extends RestModel {
    static updateBookmark(postId: any, bookmarked: any): globalThis.Promise<any>;
    static destroyBookmark(postId: any): globalThis.Promise<any>;
    static deleteMany(post_ids: any, { agreeWithFirstReplyFlag }?: {
        agreeWithFirstReplyFlag?: boolean;
    }): globalThis.Promise<any>;
    static mergePosts(post_ids: any): globalThis.Promise<any>;
    static loadRevision(postId: any, version: any): globalThis.Promise<any>;
    static hideRevision(postId: any, version: any): globalThis.Promise<any>;
    static permanentlyDeleteRevisions(postId: any): globalThis.Promise<any>;
    static showRevision(postId: any, version: any): globalThis.Promise<any>;
    static loadRawEmail(postId: any): globalThis.Promise<any>;
    constructor(...args: any[]);
    currentUser: any;
    site: any;
    customShare: any;
    action_code: any;
    action_code_path: any;
    action_code_who: any;
    actions_summary: any;
    admin: any;
    badges_granted: any;
    bookmarked: any;
    can_delete: any;
    can_edit: any;
    can_permanently_delete: any;
    can_recover: any;
    can_see_hidden_post: any;
    can_view_edit_history: any;
    cooked: any;
    cooked_hidden: any;
    created_at: any;
    deleted_at: any;
    deleted_by: any;
    excerpt: any;
    expandedExcerpt: any;
    group_moderator: any;
    hasGap: any;
    hidden: any;
    id: any;
    is_auto_generated: any;
    last_wiki_edit: any;
    likeAction: any;
    link_counts: any;
    locked: any;
    moderator: any;
    name: any;
    notice: any;
    notice_created_by_user: any;
    post_number: any;
    post_type: any;
    primary_group_name: any;
    quoted: any;
    read: any;
    readers_count: any;
    reply_count: any;
    reply_to_user: any;
    staff: any;
    staged: any;
    title_is_group: any;
    topic: any;
    topic_id: any;
    trust_level: any;
    updated_at: any;
    user_deleted: any;
    user_id: any;
    user_suspended: any;
    user_title: any;
    username: any;
    version: any;
    via_email: any;
    wiki: any;
    yours: any;
    user_custom_fields: any;
    post_localizations: any;
    is_localized: any;
    language: any;
    localization_outdated: any;
    canEdit: any;
    new_user: any;
    firstPost: any;
    deletedViaTopic: any;
    deleted: any;
    notDeleted: any;
    recoverable: any;
    topicOwner: any;
    topicCreatedById: any;
    get shareUrl(): any;
    showName(name: any, username: any): any;
    get deletedBy(): any;
    get deletedAt(): any;
    url(post_number: any, topic_id: any, topicSlug: any): any;
    urlWithNumber(postNumber: any, baseUrl: any): any;
    usernameUrl(username: any): any;
    updatePostField(field: any, value: any): globalThis.Promise<any>;
    get internalLinks(): any;
    flagsAvailable(): any;
    useTopicTitleHeadline(enabled: any, title: any): any;
    topicTitleHeadline(title: any): any;
    get canBookmark(): boolean;
    get canDelete(): any;
    get canDeleteTopic(): any;
    get canEditStaffNotes(): boolean;
    get canFlag(): boolean;
    get canManage(): any;
    get canPermanentlyDelete(): any;
    get canPublishPage(): boolean;
    get canRecoverTopic(): any;
    get isRecoveringTopic(): any;
    get canRecover(): any;
    get isRecovering(): any;
    get canSplitMergeTopic(): boolean;
    get canToggleLike(): boolean;
    get filteredRepliesPostNumber(): any;
    get hasReplies(): boolean;
    get isWhisper(): boolean;
    get isModeratorAction(): boolean;
    get isSmallAction(): boolean;
    get liked(): boolean;
    get likeCount(): any;
    /**
     * Show a "Flag to delete" message if not staff and you can't otherwise delete it.
     */
    get showFlagDelete(): boolean;
    get showLike(): boolean;
    get user(): any;
    afterUpdate(res: any): void;
    updateProperties(): {
        post: {
            raw: any;
            edit_reason: any;
        };
        image_sizes: any;
    };
    createProperties(): {
        [x: string]: unknown;
    };
    expand(): globalThis.Promise<void>;
    recover(): globalThis.Promise<void>;
    /**
     Changes the state of the post to be deleted. Does not call the server, that should be
     done elsewhere.
     **/
    setDeletedState(deletedBy: any): globalThis.Promise<void> | import("rsvp").default.Promise<void>;
    /**
     Changes the state of the post to NOT be deleted. Does not call the server.
     This can only be called after setDeletedState was called, but the delete
     failed on the server.
     **/
    undoDeleteState(): void;
    destroy(deletedBy: any, opts: any): globalThis.Promise<any> | import("rsvp").default.Promise<any>;
    /**
     * Updates a post from another's attributes. This will normally happen when a post is loading but
     * is already found in an identity map.
     **/
    updateFromPost(otherPost: any): void;
    expandHidden(): globalThis.Promise<void>;
    rebake(): globalThis.Promise<any>;
    unhide(): globalThis.Promise<any>;
    createBookmark(data: any): void;
    deleteBookmark(bookmarked: any): void;
    clearBookmark(): void;
    updateActionsSummary(json: any): void;
    updateLikeCount(count: any, userId: any, eventType: any): void;
    revertToRevision(version: any): globalThis.Promise<any>;
    get topicNotificationLevel(): any;
    get userBadges(): any;
    get badgesGranted(): any;
    get requestedGroupName(): any;
    get expandablePost(): boolean;
    get topicUrl(): any;
    get actionsSummary(): any;
    get displayDate(): any;
}
import RestModel from "discourse/models/rest";
//# sourceMappingURL=post.d.ts.map