/**
 * #app_publish_request_modmail.ts
 *
 * Code generated by ts-proto. DO NOT EDIT.
 * @packageDocumentation
 */
import type { AppPublishRequestReviewDecision } from "../review/app_publish_request_review.js";
export declare enum AppPRModmailConversationMatchType {
    APP_PR_MODMAIL_CONVERSATION_MATCH_TYPE_UNSPECIFIED = 0,
    APP_PR_MODMAIL_CONVERSATION_MATCH_TYPE_LINKED = 1,
    APP_PR_MODMAIL_CONVERSATION_MATCH_TYPE_FALLBACK = 2,
    UNRECOGNIZED = -1
}
export type AppPRModmailMessagePreview = {
    authorDisplayName: string;
    bodyMarkdown: string;
    createdAt?: string | undefined;
};
export type AppPRModmailConversation = {
    /**
     * Opaque modmail conversation identifier returned by NewModmail APIs.
     * Example: "2gm7x".
     */
    conversationId: string;
    subject: string;
    lastMessageCreatedAt?: string | undefined;
    /** Markdown body of the most recent non-empty message in the conversation. */
    lastMessageMarkdown: string;
    matchType: AppPRModmailConversationMatchType;
    /** Most recent non-empty messages, newest first. */
    messagePreviews: AppPRModmailMessagePreview[];
};
export type AppPRListModmailConversationsRequest = {
    appPublishRequestId: string;
    /**
     * Hint for maximum conversations to return.
     * A value of 0 is treated as unspecified; server applies defaults and clamping.
     */
    maxConversations: number;
    /**
     * Hint for maximum preview messages per conversation.
     * A value of 0 is treated as unspecified; server applies defaults and clamping.
     */
    maxMessagePreviewsPerConversation: number;
    /**
     * If false, only linked conversations are returned.
     * If omitted, the server defaults this behavior to true.
     */
    includeFallbackMatches: boolean;
};
export type AppPRListModmailConversationsResponse = {
    conversations: AppPRModmailConversation[];
};
export type AppPRSetReviewDecisionWithModmailRequest = {
    appPublishRequestId: string;
    /**
     * The server accepts APPROVED and DENIED.
     * Any other enum value is rejected.
     */
    decision: AppPublishRequestReviewDecision;
    subject: string;
    bodyMarkdown: string;
    /**
     * If true, the message is sent as the mod team account.
     * If false, message authoring follows the caller context.
     */
    sendAsModTeam: boolean;
};
export type AppPRSetReviewDecisionWithModmailResponse = {
    modmailConversationId: string;
    noteAdded: boolean;
};
//# sourceMappingURL=app_publish_request_modmail.d.ts.map