import type { DiscordAdaptor, MessageMutualPayload, MessageTarget, Snowflake } from "../adaptor"; import type { Logger } from "../util/logger"; import type { SetNullable } from "../util/types"; /** * メッセージを編集するためのインターフェース */ export interface Screen { /** * メッセージを編集する * 編集するメッセージが存在しない場合は新規に送信する * @param payload */ commit: (payload: MessageMutualPayload) => Promise; /** * このScreenを閉じる * config.onCloseによって挙動が変わる * Screenが閉じられた後はcommitを呼び出しても何も起こらない */ close: () => Promise; } export interface ScreenConfig { onClose: "deleteMessage" | "deleteComponent" | "keep"; logger: Logger; } export type CommitResult = { updated: false; messageId: Snowflake | null; } | { initial: boolean; updated: true; messageId: Snowflake; }; export declare const createScreen: (adaptor: DiscordAdaptor, target: MessageTarget, config: Partial) => Screen; export declare const createMessagePayloadPatch: (prev: MessageMutualPayload, next: MessageMutualPayload) => SetNullable | null; //# sourceMappingURL=screen.d.ts.map