import * as i0 from '@angular/core';
import { AXAvatarComponent } from '@acorex/components/avatar';
import * as i3 from '@acorex/components/collapse';
import { AXCollapseComponent } from '@acorex/components/collapse';
import * as i1 from '@acorex/components/decorators';
import * as i2 from '@acorex/components/wysiwyg';
import * as i4 from '@acorex/components/button';
import * as i5 from '@acorex/components/text-area';
import * as i6 from '@acorex/core/translation';
import * as i7 from '@angular/common';

/**
 * A container component for displaying and managing comments.
 *
 * @category Components
 */
declare class AXCommentContainerComponent {
    private document;
    private platformID;
    /**
     * Scrolls to a specific comment reply by its ID and highlights it temporarily.
     *
     * @param id - The ID of the comment reply to scroll to
     * @returns void
     */
    scrollToReply(id: string): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<AXCommentContainerComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<AXCommentContainerComponent, "ax-comment-container", never, {}, {}, never, ["*"], true, never>;
}

/**
 * A component that represents an individual comment item in the comment system.
 *
 * @category Components
 */
declare class AXCommentItemComponent {
    /**
     *  @ignore
     */
    protected avatar: i0.Signal<AXAvatarComponent>;
    protected collapse: i0.Signal<AXCollapseComponent>;
    readonly replyCount: i0.InputSignal<number>;
    /**
     *  @ignore
     */
    constructor();
    toggleCollapse(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<AXCommentItemComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<AXCommentItemComponent, "ax-comment-item", never, { "replyCount": { "alias": "replyCount"; "required": false; "isSignal": true; }; }, {}, ["avatar"], ["ax-avatar", "ax-title", "ax-comment-date", "ax-comment-menu-options", "ax-content", "ax-comment-like", "ax-comment-reply-text", "ax-comment-item", "ax-comment-reply-more"], true, never>;
}

/**
 * A component for displaying and managing date on a comment.
 *
 * @category Components
 */
declare class AXCommentDateComponent {
    static ɵfac: i0.ɵɵFactoryDeclaration<AXCommentDateComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<AXCommentDateComponent, "ax-comment-date", never, {}, {}, never, ["*"], true, never>;
}

/**
 * A component for displaying and managing likes on a comment.
 *
 * @category Components
 */
declare class AXCommentLikeComponent {
    /**
     * Indicates whether the comment is liked.
     */
    like: i0.ModelSignal<boolean>;
    protected changeState(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<AXCommentLikeComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<AXCommentLikeComponent, "ax-comment-like", never, { "like": { "alias": "like"; "required": true; "isSignal": true; }; }, { "like": "likeChange"; }, never, ["*"], true, never>;
}

/**
 * A component for displaying and managing menu options on a comment.
 *
 * @category Components
 */
declare class AXMenuOptionsComponent {
    static ɵfac: i0.ɵɵFactoryDeclaration<AXMenuOptionsComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<AXMenuOptionsComponent, "ax-comment-menu-options", never, {}, {}, never, ["*"], true, never>;
}

declare class AXCommentReplyMoreComponent {
    static ɵfac: i0.ɵɵFactoryDeclaration<AXCommentReplyMoreComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<AXCommentReplyMoreComponent, "ax-comment-reply-more", never, {}, {}, never, ["*"], true, never>;
}

declare class AXCommentReplyTextComponent {
    static ɵfac: i0.ɵɵFactoryDeclaration<AXCommentReplyTextComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<AXCommentReplyTextComponent, "ax-comment-reply-text", never, {}, {}, never, never, true, never>;
}

/**
 * A component for viewing comments with their details.
 * @category Components
 */
declare class AXCommentViewComponent {
    static ɵfac: i0.ɵɵFactoryDeclaration<AXCommentViewComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<AXCommentViewComponent, "ax-comment-view", never, {}, {}, never, ["ax-comment-item"], true, never>;
}

declare class AXCommentModule {
    static ɵfac: i0.ɵɵFactoryDeclaration<AXCommentModule, never>;
    static ɵmod: i0.ɵɵNgModuleDeclaration<AXCommentModule, never, [typeof i1.AXDecoratorModule, typeof i2.AXWysiwygModule, typeof i3.AXCollapseModule, typeof i4.AXButtonModule, typeof i5.AXTextAreaModule, typeof i6.AXTranslationModule, typeof i7.CommonModule, typeof AXCommentViewComponent, typeof AXCommentContainerComponent, typeof AXCommentItemComponent, typeof AXCommentLikeComponent, typeof AXMenuOptionsComponent, typeof AXCommentReplyTextComponent, typeof AXCommentDateComponent, typeof AXCommentReplyMoreComponent], [typeof AXCommentViewComponent, typeof AXCommentContainerComponent, typeof AXCommentItemComponent, typeof AXCommentLikeComponent, typeof AXMenuOptionsComponent, typeof AXCommentReplyTextComponent, typeof AXCommentDateComponent, typeof AXCommentReplyMoreComponent]>;
    static ɵinj: i0.ɵɵInjectorDeclaration<AXCommentModule>;
}

export { AXCommentContainerComponent, AXCommentDateComponent, AXCommentItemComponent, AXCommentLikeComponent, AXCommentModule, AXCommentReplyMoreComponent, AXCommentReplyTextComponent, AXCommentViewComponent, AXMenuOptionsComponent };
