/**
 * #app_publish_request_modmail.ts
 *
 * Code generated by ts-proto. DO NOT EDIT.
 * @packageDocumentation
 */
import _m0 from "protobufjs/minimal.js";
import { 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 declare function appPRModmailConversationMatchTypeFromJSON(object: any): AppPRModmailConversationMatchType;
export declare function appPRModmailConversationMatchTypeToJSON(object: AppPRModmailConversationMatchType): number;
export interface AppPRModmailMessagePreview {
    authorDisplayName: string;
    bodyMarkdown: string;
    createdAt?: Date | undefined;
}
export interface AppPRModmailConversation {
    /**
     * Opaque modmail conversation identifier returned by NewModmail APIs.
     * Example: "2gm7x".
     */
    conversationId: string;
    subject: string;
    lastMessageCreatedAt?: Date | 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 interface 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 interface AppPRListModmailConversationsResponse {
    conversations: AppPRModmailConversation[];
}
export interface 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 interface AppPRSetReviewDecisionWithModmailResponse {
    modmailConversationId: string;
    noteAdded: boolean;
}
export declare const AppPRModmailMessagePreview: {
    $type: "devvit.dev_portal.app_publish_request.modmail.AppPRModmailMessagePreview";
    encode(message: AppPRModmailMessagePreview, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): AppPRModmailMessagePreview;
    fromJSON(object: any): AppPRModmailMessagePreview;
    toJSON(message: AppPRModmailMessagePreview): unknown;
    create(base?: DeepPartial<AppPRModmailMessagePreview>): AppPRModmailMessagePreview;
    fromPartial(object: DeepPartial<AppPRModmailMessagePreview>): AppPRModmailMessagePreview;
};
export declare const AppPRModmailConversation: {
    $type: "devvit.dev_portal.app_publish_request.modmail.AppPRModmailConversation";
    encode(message: AppPRModmailConversation, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): AppPRModmailConversation;
    fromJSON(object: any): AppPRModmailConversation;
    toJSON(message: AppPRModmailConversation): unknown;
    create(base?: DeepPartial<AppPRModmailConversation>): AppPRModmailConversation;
    fromPartial(object: DeepPartial<AppPRModmailConversation>): AppPRModmailConversation;
};
export declare const AppPRListModmailConversationsRequest: {
    $type: "devvit.dev_portal.app_publish_request.modmail.AppPRListModmailConversationsRequest";
    encode(message: AppPRListModmailConversationsRequest, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): AppPRListModmailConversationsRequest;
    fromJSON(object: any): AppPRListModmailConversationsRequest;
    toJSON(message: AppPRListModmailConversationsRequest): unknown;
    create(base?: DeepPartial<AppPRListModmailConversationsRequest>): AppPRListModmailConversationsRequest;
    fromPartial(object: DeepPartial<AppPRListModmailConversationsRequest>): AppPRListModmailConversationsRequest;
};
export declare const AppPRListModmailConversationsResponse: {
    $type: "devvit.dev_portal.app_publish_request.modmail.AppPRListModmailConversationsResponse";
    encode(message: AppPRListModmailConversationsResponse, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): AppPRListModmailConversationsResponse;
    fromJSON(object: any): AppPRListModmailConversationsResponse;
    toJSON(message: AppPRListModmailConversationsResponse): unknown;
    create(base?: DeepPartial<AppPRListModmailConversationsResponse>): AppPRListModmailConversationsResponse;
    fromPartial(object: DeepPartial<AppPRListModmailConversationsResponse>): AppPRListModmailConversationsResponse;
};
export declare const AppPRSetReviewDecisionWithModmailRequest: {
    $type: "devvit.dev_portal.app_publish_request.modmail.AppPRSetReviewDecisionWithModmailRequest";
    encode(message: AppPRSetReviewDecisionWithModmailRequest, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): AppPRSetReviewDecisionWithModmailRequest;
    fromJSON(object: any): AppPRSetReviewDecisionWithModmailRequest;
    toJSON(message: AppPRSetReviewDecisionWithModmailRequest): unknown;
    create(base?: DeepPartial<AppPRSetReviewDecisionWithModmailRequest>): AppPRSetReviewDecisionWithModmailRequest;
    fromPartial(object: DeepPartial<AppPRSetReviewDecisionWithModmailRequest>): AppPRSetReviewDecisionWithModmailRequest;
};
export declare const AppPRSetReviewDecisionWithModmailResponse: {
    $type: "devvit.dev_portal.app_publish_request.modmail.AppPRSetReviewDecisionWithModmailResponse";
    encode(message: AppPRSetReviewDecisionWithModmailResponse, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): AppPRSetReviewDecisionWithModmailResponse;
    fromJSON(object: any): AppPRSetReviewDecisionWithModmailResponse;
    toJSON(message: AppPRSetReviewDecisionWithModmailResponse): unknown;
    create(base?: DeepPartial<AppPRSetReviewDecisionWithModmailResponse>): AppPRSetReviewDecisionWithModmailResponse;
    fromPartial(object: DeepPartial<AppPRSetReviewDecisionWithModmailResponse>): AppPRSetReviewDecisionWithModmailResponse;
};
type Builtin = Date | Function | Uint8Array | string | number | boolean | undefined;
type DeepPartial<T> = T extends Builtin ? T : T extends globalThis.Array<infer U> ? globalThis.Array<DeepPartial<U>> : T extends ReadonlyArray<infer U> ? ReadonlyArray<DeepPartial<U>> : T extends {} ? {
    [K in keyof T]?: DeepPartial<T[K]>;
} : Partial<T>;
export {};
//# sourceMappingURL=app_publish_request_modmail.d.ts.map