import { C as PHBaseState, a as ActionWithAttachment, i as Action, w as PHDocument } from "./index-DQ5mRIVf.js";

//#region document-models/chat/v1/gen/schema/types.d.ts
type Maybe<T> = T | null | undefined;
type InputMaybe<T> = T | null | undefined;
type Exact<T extends {
  [key: string]: unknown;
}> = { [K in keyof T]: T[K] };
type MakeOptional<T, K extends keyof T> = Omit<T, K> & { [SubKey in K]?: Maybe<T[SubKey]> };
type MakeMaybe<T, K extends keyof T> = Omit<T, K> & { [SubKey in K]: Maybe<T[SubKey]> };
type MakeEmpty<T extends {
  [key: string]: unknown;
}, K extends keyof T> = { [_ in K]?: never };
type Incremental<T> = T | { [P in keyof T]?: P extends " $fragmentName" | "__typename" ? T[P] : never };
/** All built-in and custom scalars, mapped to their actual values */
type Scalars = {
  ID: {
    input: string;
    output: string;
  };
  String: {
    input: string;
    output: string;
  };
  Boolean: {
    input: boolean;
    output: boolean;
  };
  Int: {
    input: number;
    output: number;
  };
  Float: {
    input: number;
    output: number;
  };
  Address: {
    input: `${string}:0x${string}`;
    output: `${string}:0x${string}`;
  };
  Amount: {
    input: {
      unit?: string;
      value?: number;
    };
    output: {
      unit?: string;
      value?: number;
    };
  };
  Amount_Crypto: {
    input: {
      unit: string;
      value: string;
    };
    output: {
      unit: string;
      value: string;
    };
  };
  Amount_Currency: {
    input: {
      unit: string;
      value: string;
    };
    output: {
      unit: string;
      value: string;
    };
  };
  Amount_Fiat: {
    input: {
      unit: string;
      value: number;
    };
    output: {
      unit: string;
      value: number;
    };
  };
  Amount_Money: {
    input: number;
    output: number;
  };
  Amount_Percentage: {
    input: number;
    output: number;
  };
  Amount_Tokens: {
    input: number;
    output: number;
  };
  Currency: {
    input: string;
    output: string;
  };
  Date: {
    input: string;
    output: string;
  };
  DateTime: {
    input: string;
    output: string;
  };
  EmailAddress: {
    input: string;
    output: string;
  };
  EthereumAddress: {
    input: string;
    output: string;
  };
  OID: {
    input: string;
    output: string;
  };
  OLabel: {
    input: string;
    output: string;
  };
  PHID: {
    input: string;
    output: string;
  };
  URL: {
    input: string;
    output: string;
  };
  Unknown: {
    input: unknown;
    output: unknown;
  };
  Upload: {
    input: File;
    output: File;
  };
};
type AddReactionInput = {
  emoji: Scalars["String"]["input"];
  id: Scalars["OID"]["input"];
  messageId: Scalars["OID"]["input"];
  participantId: Scalars["OID"]["input"];
};
type Attachment = {
  description: Maybe<Scalars["String"]["output"]>;
  id: Scalars["OID"]["output"];
  thumbnailUrl: Maybe<Scalars["String"]["output"]>;
  title: Maybe<Scalars["String"]["output"]>;
  type: AttachmentType;
  url: Scalars["URL"]["output"];
};
type AttachmentInput = {
  description?: InputMaybe<Scalars["String"]["input"]>;
  id: Scalars["OID"]["input"];
  thumbnailUrl?: InputMaybe<Scalars["String"]["input"]>;
  title?: InputMaybe<Scalars["String"]["input"]>;
  type: AttachmentType;
  url: Scalars["URL"]["input"];
};
type AttachmentType = "FILE" | "GIF" | "IMAGE" | "LINK";
type ChatState = {
  channelId: Maybe<Scalars["PHID"]["output"]>;
  messages: Array<Message>;
  pinnedMessageIds: Array<Scalars["String"]["output"]>;
};
type DeleteMessageInput = {
  messageId: Scalars["OID"]["input"];
};
type EditMessageInput = {
  content: Scalars["String"]["input"];
  editedAt: Scalars["DateTime"]["input"];
  messageId: Scalars["OID"]["input"];
};
type Message = {
  attachments: Array<Attachment>;
  authorId: Scalars["OID"]["output"];
  content: Scalars["String"]["output"];
  edited: Scalars["Boolean"]["output"];
  editedAt: Maybe<Scalars["DateTime"]["output"]>;
  id: Scalars["OID"]["output"];
  reactions: Array<Reaction>;
  replyToId: Maybe<Scalars["OID"]["output"]>;
  timestamp: Scalars["DateTime"]["output"];
};
type PinMessageInput = {
  messageId: Scalars["OID"]["input"];
};
type Reaction = {
  emoji: Scalars["String"]["output"];
  id: Scalars["OID"]["output"];
  participantIds: Array<Scalars["OID"]["output"]>;
};
type RemoveReactionInput = {
  emoji: Scalars["String"]["input"];
  messageId: Scalars["OID"]["input"];
  participantId: Scalars["OID"]["input"];
};
type SendMessageInput = {
  attachments?: InputMaybe<Array<AttachmentInput>>;
  authorId: Scalars["OID"]["input"];
  content: Scalars["String"]["input"];
  id: Scalars["OID"]["input"];
  replyToId?: InputMaybe<Scalars["OID"]["input"]>;
  timestamp: Scalars["DateTime"]["input"];
};
type SetChannelIdInput = {
  channelId: Scalars["PHID"]["input"];
};
type UnpinMessageInput = {
  messageId: Scalars["OID"]["input"];
};
//#endregion
//#region document-models/chat/v1/gen/types.d.ts
type ChatLocalState = Record<PropertyKey, never>;
type ChatPHState = PHBaseState & {
  global: ChatState;
  local: ChatLocalState;
};
type ChatDocument = PHDocument<ChatPHState>;
//#endregion
//#region document-models/chat/v1/gen/config/actions.d.ts
type SetChannelIdAction = Action & {
  type: "SET_CHANNEL_ID";
  input: SetChannelIdInput;
};
type ChatConfigAction = SetChannelIdAction;
//#endregion
//#region document-models/chat/v1/gen/messages/actions.d.ts
type SendMessageAction = ActionWithAttachment & {
  type: "SEND_MESSAGE";
  input: SendMessageInput;
};
type EditMessageAction = Action & {
  type: "EDIT_MESSAGE";
  input: EditMessageInput;
};
type DeleteMessageAction = Action & {
  type: "DELETE_MESSAGE";
  input: DeleteMessageInput;
};
type PinMessageAction = Action & {
  type: "PIN_MESSAGE";
  input: PinMessageInput;
};
type UnpinMessageAction = Action & {
  type: "UNPIN_MESSAGE";
  input: UnpinMessageInput;
};
type AddReactionAction = Action & {
  type: "ADD_REACTION";
  input: AddReactionInput;
};
type RemoveReactionAction = Action & {
  type: "REMOVE_REACTION";
  input: RemoveReactionInput;
};
type ChatMessagesAction = SendMessageAction | EditMessageAction | DeleteMessageAction | PinMessageAction | UnpinMessageAction | AddReactionAction | RemoveReactionAction;
//#endregion
//#region document-models/chat/v1/gen/actions.d.ts
type ChatAction = ChatConfigAction | ChatMessagesAction;
//#endregion
export { PinMessageInput as A, Incremental as C, MakeOptional as D, MakeMaybe as E, SetChannelIdInput as F, UnpinMessageInput as I, RemoveReactionInput as M, Scalars as N, Maybe as O, SendMessageInput as P, Exact as S, MakeEmpty as T, AttachmentInput as _, EditMessageAction as a, DeleteMessageInput as b, SendMessageAction as c, SetChannelIdAction as d, ChatDocument as f, Attachment as g, AddReactionInput as h, DeleteMessageAction as i, Reaction as j, Message as k, UnpinMessageAction as l, ChatPHState as m, AddReactionAction as n, PinMessageAction as o, ChatLocalState as p, ChatMessagesAction as r, RemoveReactionAction as s, ChatAction as t, ChatConfigAction as u, AttachmentType as v, InputMaybe as w, EditMessageInput as x, ChatState as y };
//# sourceMappingURL=actions-LXU_7Q7B.d.ts.map