import { Attachment } from "./attachment.model";
import { AutocompleteGroupReplaceData, AutocompleteReplaceData, AutocompleteUserContactReplaceData } from "./autocomplete.data.model";
import type { AgentData } from "./comment-annotation.data.model";
import { ReactionAnnotation } from "./reaction-annotation.data.model";
import { RecordedData } from "./recorder.model";
import { User } from "./user.data.model";
export declare class Comment {
    /**
     * Unique identifier for the comment pin annotation.
     *
     * Auto generated.
     */
    commentId: number;
    context?: any;
    /**
     * This determines the comment content type.
     *
     * Default: 'text'.
     */
    type: 'text' | 'voice';
    /**
     * Comment Text.
     *
     */
    commentText?: string;
    /**
     * To check if comment text is available.
     */
    isCommentTextAvailable?: boolean;
    isCommentResolverUsed?: boolean;
    /**
     * Same comment text in HTML.
     *
     */
    commentHtml?: string;
    /**
     * Html content to replace the comment text when user accepts the comment.
     */
    replaceContentHtml?: string;
    /**
     * Text content to replace the comment text when user accepts the comment.
     */
    replaceContentText?: string;
    /**
     * Comment voice recording url.
     *
     */
    commentVoiceUrl?: string;
    /**
     * The user who created this comment text.
     *
     */
    from: User;
    /**
     * List of users that were tagged using @mentions to this comment.
     *
     */
    to?: User[];
    /**
     * Timestamp when this comment content was last updated.
     *
     * Auto generated.
     */
    lastUpdated?: Date;
    createdAt?: any;
    status: 'added' | 'updated';
    /**
     * List of attachments.
     */
    attachments: Attachment[];
    /**
     * List of recorded data.
     */
    recorders: RecordedData[];
    reactionAnnotationIds: string[];
    taggedUserContacts: AutocompleteUserContactReplaceData[];
    customList: AutocompleteReplaceData[];
    toOrganizationUserGroup: AutocompleteGroupReplaceData[];
    isDraft?: boolean;
    /**
   * Timestamp when the comment annotation was edited.
   *
   * Auto generated.
   */
    editedAt?: any;
    /**
     * To check if comment annotation is edited.
     *
     */
    isEdited?: boolean;
    reactionAnnotations?: ReactionAnnotation[];
    /**
     * Origin of this individual comment. `'agent'` indicates the comment was
     * authored by an AI agent (agent replies / multi-agent threads). Stamped
     * server-side; mirrors `CommentAnnotation.sourceType` at the comment level.
     */
    sourceType?: string;
    /**
     * AI agent identity + output for an agent-authored comment. Present on
     * per-comment agent replies. Read-only from the SDK; written upstream by the
     * agent. Mirrors `CommentAnnotation.agent` at the comment level.
     */
    agent?: AgentData;
    /**
     * Customer-supplied metadata bag persisted as-is. Only present when a caller
     * provides it; not server-generated.
     */
    metadata?: any;
}
