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

//#region document-models/channel/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;
  };
  Attachment: {
    input: string;
    output: string;
  };
  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 AddParticipantInput = {
  avatar?: InputMaybe<Scalars["String"]["input"]>;
  id: Scalars["OID"]["input"];
  joinedAt: Scalars["DateTime"]["input"];
  name: Scalars["String"]["input"];
  role: ParticipantRole;
};
type ChannelState = {
  channelType: ChannelType;
  description: Maybe<Scalars["String"]["output"]>;
  name: Maybe<Scalars["String"]["output"]>;
  participants: Array<Participant>;
  topic: Maybe<Scalars["String"]["output"]>;
  visibility: ChannelVisibility;
};
type ChannelType = "TEXT" | "VOICE";
type ChannelVisibility = "PRIVATE" | "PUBLIC";
type Participant = {
  avatar: Maybe<Scalars["String"]["output"]>;
  id: Scalars["OID"]["output"];
  joinedAt: Scalars["DateTime"]["output"];
  name: Scalars["String"]["output"];
  role: ParticipantRole;
};
type ParticipantRole = "ADMIN" | "GUEST" | "MEMBER" | "OWNER";
type RemoveParticipantInput = {
  participantId: Scalars["OID"]["input"];
};
type SetChannelDescriptionInput = {
  description: Scalars["String"]["input"];
};
type SetChannelNameInput = {
  name: Scalars["String"]["input"];
};
type SetChannelTopicInput = {
  topic: Scalars["String"]["input"];
};
type SetChannelTypeInput = {
  channelType: ChannelType;
};
type SetChannelVisibilityInput = {
  visibility: ChannelVisibility;
};
type UpdateParticipantRoleInput = {
  participantId: Scalars["OID"]["input"];
  role: ParticipantRole;
};
//#endregion
//#region document-models/channel/v1/gen/types.d.ts
type ChannelLocalState = Record<PropertyKey, never>;
type ChannelPHState = PHBaseState & {
  global: ChannelState;
  local: ChannelLocalState;
};
type ChannelDocument = PHDocument<ChannelPHState>;
//#endregion
//#region document-models/channel/v1/gen/channel/actions.d.ts
type SetChannelNameAction = Action & {
  type: "SET_CHANNEL_NAME";
  input: SetChannelNameInput;
};
type SetChannelDescriptionAction = Action & {
  type: "SET_CHANNEL_DESCRIPTION";
  input: SetChannelDescriptionInput;
};
type SetChannelVisibilityAction = Action & {
  type: "SET_CHANNEL_VISIBILITY";
  input: SetChannelVisibilityInput;
};
type SetChannelTopicAction = Action & {
  type: "SET_CHANNEL_TOPIC";
  input: SetChannelTopicInput;
};
type SetChannelTypeAction = Action & {
  type: "SET_CHANNEL_TYPE";
  input: SetChannelTypeInput;
};
type ChannelChannelAction = SetChannelNameAction | SetChannelDescriptionAction | SetChannelVisibilityAction | SetChannelTopicAction | SetChannelTypeAction;
//#endregion
//#region document-models/channel/v1/gen/participants/actions.d.ts
type AddParticipantAction = Action & {
  type: "ADD_PARTICIPANT";
  input: AddParticipantInput;
};
type RemoveParticipantAction = Action & {
  type: "REMOVE_PARTICIPANT";
  input: RemoveParticipantInput;
};
type UpdateParticipantRoleAction = Action & {
  type: "UPDATE_PARTICIPANT_ROLE";
  input: UpdateParticipantRoleInput;
};
type ChannelParticipantsAction = AddParticipantAction | RemoveParticipantAction | UpdateParticipantRoleAction;
//#endregion
//#region document-models/channel/v1/gen/actions.d.ts
type ChannelAction = ChannelChannelAction | ChannelParticipantsAction;
//#endregion
export { SetChannelDescriptionInput as A, MakeMaybe as C, ParticipantRole as D, Participant as E, UpdateParticipantRoleInput as F, SetChannelTopicInput as M, SetChannelTypeInput as N, RemoveParticipantInput as O, SetChannelVisibilityInput as P, MakeEmpty as S, Maybe as T, ChannelType as _, UpdateParticipantRoleAction as a, Incremental as b, SetChannelNameAction as c, SetChannelVisibilityAction as d, ChannelDocument as f, ChannelState as g, AddParticipantInput as h, RemoveParticipantAction as i, SetChannelNameInput as j, Scalars as k, SetChannelTopicAction as l, ChannelPHState as m, AddParticipantAction as n, ChannelChannelAction as o, ChannelLocalState as p, ChannelParticipantsAction as r, SetChannelDescriptionAction as s, ChannelAction as t, SetChannelTypeAction as u, ChannelVisibility as v, MakeOptional as w, InputMaybe as x, Exact as y };
//# sourceMappingURL=actions-Cy1sbdql.d.ts.map