/**
 * This file was auto-generated by Fern from our API Definition.
 */
import * as Intercom from "../../../index";
/**
 * Conversations are how you can communicate with users in Intercom. They are created when a contact replies to an outbound message, or when one admin directly sends a message to a single contact.
 */
export interface Conversation {
    /** Always conversation. */
    type?: "conversation";
    /** The id representing the conversation. */
    id: string;
    /** The title given to the conversation. */
    title?: string;
    /** The time the conversation was created. */
    created_at: number;
    /** The last time the conversation was updated. */
    updated_at: number;
    /** The last time a Contact responded to an Admin. In other words, the time a customer started waiting for a response. Set to null if last reply is from an Admin. */
    waiting_since?: number;
    /** If set this is the time in the future when this conversation will be marked as open. i.e. it will be in a snoozed state until this time. i.e. it will be in a snoozed state until this time. */
    snoozed_until?: number;
    /** Indicates whether a conversation is open (true) or closed (false). */
    open: boolean;
    /** Can be set to "open", "closed" or "snoozed". */
    state: Conversation.State;
    /** Indicates whether a conversation has been read. */
    read: boolean;
    /** If marked as priority, it will return priority or else not_priority. */
    priority?: Conversation.Priority;
    /** The id of the admin assigned to the conversation. If it's not assigned to an admin it will return null. */
    admin_assignee_id?: number;
    /** The id of the team assigned to the conversation. If it's not assigned to a team it will return null. */
    team_assignee_id?: string;
    tags?: Intercom.Tags;
    conversation_rating?: Intercom.ConversationRating;
    source: Intercom.ConversationSource;
    contacts: Intercom.ConversationContacts;
    teammates: Intercom.ConversationTeammates;
    custom_attributes: Intercom.CustomAttributes;
    first_contact_reply?: Intercom.ConversationFirstContactReply;
    sla_applied?: Intercom.SlaApplied;
    statistics?: Intercom.ConversationStatistics;
    conversation_parts?: Intercom.ConversationParts;
    linked_objects?: Intercom.LinkedObjectList;
    /** Indicates whether the AI Agent participated in the conversation. */
    ai_agent_participated?: boolean;
    ai_agent?: Intercom.AiAgent;
}
export declare namespace Conversation {
    /**
     * Can be set to "open", "closed" or "snoozed".
     */
    type State = "open" | "closed" | "snoozed";
    const State: {
        readonly Open: "open";
        readonly Closed: "closed";
        readonly Snoozed: "snoozed";
    };
    /**
     * If marked as priority, it will return priority or else not_priority.
     */
    type Priority = "priority" | "not_priority";
    const Priority: {
        readonly Priority: "priority";
        readonly NotPriority: "not_priority";
    };
}
