import type { CreatePageMessage } from "../../bridge/messages/createPage.js" import type { CustomBlockCreatePageErrorInfo } from "../../bridge/messages/createPageResult.js" import type { CustomBlockGetPageErrorInfo, GetPageMessage, } from "../../bridge/messages/getPage.js" import type { CustomBlockGetUserErrorInfo, GetUserMessage, } from "../../bridge/messages/getUser.js" import type { CustomBlockListUsersErrorInfo, ListUsersMessage, } from "../../bridge/messages/listUsers.js" import type { QueryDataSourceMessage } from "../../bridge/messages/queryDataSource.js" import type { ResizeMessage } from "../../bridge/messages/resize.js" import type { UpdatePageMessage } from "../../bridge/messages/updatePage.js" import type { CustomBlockUpdatePageErrorInfo } from "../../bridge/messages/updatePageResult.js" import type { NotionPage } from "../../bridge/pages/page.js" import type { NotionUser, NotionUserList } from "../../bridge/users/user.js" import type { CustomBlockHostQueryDataSourceResult } from "../queries/types.js" type MaybePromise = T | Promise export type CustomBlockHostCreatePageResult = | { status: "success"; page: NotionPage } | { status: "error"; error: CustomBlockCreatePageErrorInfo } export type CustomBlockHostGetPageResult = | { status: "success"; page: NotionPage } | { status: "error"; error: CustomBlockGetPageErrorInfo } export type CustomBlockHostUpdatePageResult = | { status: "success"; page: NotionPage } | { status: "error"; error: CustomBlockUpdatePageErrorInfo } export type CustomBlockHostGetUserResult = | { status: "success"; user: NotionUser } | { status: "error"; error: CustomBlockGetUserErrorInfo } export type CustomBlockHostListUsersResult = | { status: "success"; list: NotionUserList } | { status: "error"; error: CustomBlockListUsersErrorInfo } export type CustomBlockHostHandlers = { queryDataSource: ( message: QueryDataSourceMessage, ) => MaybePromise createPage?: ( message: CreatePageMessage, ) => MaybePromise getPage?: ( message: GetPageMessage, ) => MaybePromise getUser?: ( message: GetUserMessage, ) => MaybePromise listUsers?: ( message: ListUsersMessage, ) => MaybePromise updatePage?: ( message: UpdatePageMessage, ) => MaybePromise resize?: (message: ResizeMessage) => void } export type CustomBlockHostLogDirection = "in" | "out" | "warn"