import { S as PHDocument, i as Action, x as PHBaseState } from "./index-otPBmxzq.js";

//#region document-models/governance/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 AppealDisputeInput = {
  appealAt: Scalars["DateTime"]["input"];
  appealReason: Scalars["String"]["input"];
  id: Scalars["OID"]["input"];
};
type AssignInvestigatorInput = {
  assignedTo: Scalars["String"]["input"];
  id: Scalars["OID"]["input"];
};
type DismissDisputeInput = {
  dismissedAt: Scalars["DateTime"]["input"];
  id: Scalars["OID"]["input"];
  reason: Scalars["String"]["input"];
};
type Dispute = {
  appealAt: Maybe<Scalars["DateTime"]["output"]>;
  appealReason: Maybe<Scalars["String"]["output"]>;
  assignedTo: Maybe<Scalars["String"]["output"]>;
  disputeKind: DisputeKind;
  filedAt: Scalars["DateTime"]["output"];
  filedBy: Scalars["String"]["output"];
  id: Scalars["OID"]["output"];
  resolution: Maybe<Scalars["String"]["output"]>;
  resolvedAt: Maybe<Scalars["DateTime"]["output"]>;
  status: DisputeStatus;
  subjectRef: Scalars["PHID"]["output"];
  summary: Scalars["String"]["output"];
};
type DisputeKind = "DUPLICATE_CLAIM" | "INACCURATE_ENTRY" | "OTHER" | "POLICY_VIOLATION" | "PUBLISHER_CONDUCT" | "REVIEW_DECISION";
type DisputeStatus = "APPEALED" | "DISMISSED" | "INVESTIGATING" | "OPEN" | "RESOLVED";
type FileDisputeInput = {
  disputeKind: DisputeKind;
  filedAt: Scalars["DateTime"]["input"];
  filedBy: Scalars["String"]["input"];
  id: Scalars["OID"]["input"];
  subjectRef: Scalars["PHID"]["input"];
  summary: Scalars["String"]["input"];
};
type GovernanceState = {
  disputes: Array<Dispute>;
  policies: Array<Policy>;
  publisherDecisions: Array<PublisherDecision>;
  rfcs: Array<Rfc>;
};
type ImplementRfcInput = {
  id: Scalars["OID"]["input"];
  implementedAt: Scalars["DateTime"]["input"];
};
type Policy = {
  content: Scalars["String"]["output"];
  effectiveFrom: Scalars["DateTime"]["output"];
  id: Scalars["OID"]["output"];
  name: Scalars["String"]["output"];
  summary: Scalars["String"]["output"];
  supersededAt: Maybe<Scalars["DateTime"]["output"]>;
  supersededBy: Maybe<Scalars["OID"]["output"]>;
};
type ProposeRfcInput = {
  author: Scalars["String"]["input"];
  id: Scalars["OID"]["input"];
  proposedAt: Scalars["DateTime"]["input"];
  summary: Scalars["String"]["input"];
  title: Scalars["String"]["input"];
};
type PublishPolicyInput = {
  content: Scalars["String"]["input"];
  effectiveFrom: Scalars["DateTime"]["input"];
  id: Scalars["OID"]["input"];
  name: Scalars["String"]["input"];
  summary: Scalars["String"]["input"];
};
type PublisherDecision = {
  decidedAt: Scalars["DateTime"]["output"];
  decidedBy: Scalars["String"]["output"];
  decision: PublisherDecisionKind;
  grantSystemRef: Scalars["PHID"]["output"];
  id: Scalars["OID"]["output"];
  reason: Maybe<Scalars["String"]["output"]>;
};
type PublisherDecisionKind = "APPROVED" | "REINSTATED" | "REVOKED" | "SUSPENDED";
type RatifyRfcInput = {
  id: Scalars["OID"]["input"];
  ratifiedAt: Scalars["DateTime"]["input"];
};
type RecordPublisherDecisionInput = {
  decidedAt: Scalars["DateTime"]["input"];
  decidedBy: Scalars["String"]["input"];
  decision: PublisherDecisionKind;
  grantSystemRef: Scalars["PHID"]["input"];
  id: Scalars["OID"]["input"];
  reason?: InputMaybe<Scalars["String"]["input"]>;
};
type RejectRfcInput = {
  id: Scalars["OID"]["input"];
};
type ResolveDisputeInput = {
  id: Scalars["OID"]["input"];
  resolution: Scalars["String"]["input"];
  resolvedAt: Scalars["DateTime"]["input"];
};
type Rfc = {
  author: Scalars["String"]["output"];
  id: Scalars["OID"]["output"];
  implementedAt: Maybe<Scalars["DateTime"]["output"]>;
  proposedAt: Scalars["DateTime"]["output"];
  ratifiedAt: Maybe<Scalars["DateTime"]["output"]>;
  status: RfcStatus;
  summary: Scalars["String"]["output"];
  title: Scalars["String"]["output"];
};
type RfcStatus = "IMPLEMENTED" | "PROPOSED" | "RATIFIED" | "REJECTED" | "UNDER_REVIEW" | "WITHDRAWN";
type StartRfcReviewInput = {
  id: Scalars["OID"]["input"];
};
type SupersedePolicyInput = {
  id: Scalars["OID"]["input"];
  supersededAt: Scalars["DateTime"]["input"];
  supersededBy: Scalars["OID"]["input"];
};
type WithdrawRfcInput = {
  id: Scalars["OID"]["input"];
};
//#endregion
//#region document-models/governance/v1/gen/types.d.ts
type GovernanceLocalState = Record<PropertyKey, never>;
type GovernancePHState = PHBaseState & {
  global: GovernanceState;
  local: GovernanceLocalState;
};
type GovernanceDocument = PHDocument<GovernancePHState>;
//#endregion
//#region document-models/governance/v1/gen/disputes/actions.d.ts
type FileDisputeAction = Action & {
  type: "FILE_DISPUTE";
  input: FileDisputeInput;
};
type AssignInvestigatorAction = Action & {
  type: "ASSIGN_INVESTIGATOR";
  input: AssignInvestigatorInput;
};
type ResolveDisputeAction = Action & {
  type: "RESOLVE_DISPUTE";
  input: ResolveDisputeInput;
};
type DismissDisputeAction = Action & {
  type: "DISMISS_DISPUTE";
  input: DismissDisputeInput;
};
type AppealDisputeAction = Action & {
  type: "APPEAL_DISPUTE";
  input: AppealDisputeInput;
};
type GovernanceDisputesAction = FileDisputeAction | AssignInvestigatorAction | ResolveDisputeAction | DismissDisputeAction | AppealDisputeAction;
//#endregion
//#region document-models/governance/v1/gen/publisher-decisions/actions.d.ts
type RecordPublisherDecisionAction = Action & {
  type: "RECORD_PUBLISHER_DECISION";
  input: RecordPublisherDecisionInput;
};
type GovernancePublisherDecisionsAction = RecordPublisherDecisionAction;
//#endregion
//#region document-models/governance/v1/gen/rfcs/actions.d.ts
type ProposeRfcAction = Action & {
  type: "PROPOSE_RFC";
  input: ProposeRfcInput;
};
type StartRfcReviewAction = Action & {
  type: "START_RFC_REVIEW";
  input: StartRfcReviewInput;
};
type RatifyRfcAction = Action & {
  type: "RATIFY_RFC";
  input: RatifyRfcInput;
};
type ImplementRfcAction = Action & {
  type: "IMPLEMENT_RFC";
  input: ImplementRfcInput;
};
type RejectRfcAction = Action & {
  type: "REJECT_RFC";
  input: RejectRfcInput;
};
type WithdrawRfcAction = Action & {
  type: "WITHDRAW_RFC";
  input: WithdrawRfcInput;
};
type GovernanceRfcsAction = ProposeRfcAction | StartRfcReviewAction | RatifyRfcAction | ImplementRfcAction | RejectRfcAction | WithdrawRfcAction;
//#endregion
//#region document-models/governance/v1/gen/policies/actions.d.ts
type PublishPolicyAction = Action & {
  type: "PUBLISH_POLICY";
  input: PublishPolicyInput;
};
type SupersedePolicyAction = Action & {
  type: "SUPERSEDE_POLICY";
  input: SupersedePolicyInput;
};
type GovernancePoliciesAction = PublishPolicyAction | SupersedePolicyAction;
//#endregion
//#region document-models/governance/v1/gen/actions.d.ts
type GovernanceAction = GovernanceDisputesAction | GovernancePublisherDecisionsAction | GovernanceRfcsAction | GovernancePoliciesAction;
//#endregion
export { WithdrawRfcInput as $, FileDisputeInput as A, ProposeRfcInput as B, AppealDisputeInput as C, DisputeKind as D, Dispute as E, MakeEmpty as F, RecordPublisherDecisionInput as G, PublisherDecision as H, MakeMaybe as I, Rfc as J, RejectRfcInput as K, MakeOptional as L, ImplementRfcInput as M, Incremental as N, DisputeStatus as O, InputMaybe as P, SupersedePolicyInput as Q, Maybe as R, GovernancePHState as S, DismissDisputeInput as T, PublisherDecisionKind as U, PublishPolicyInput as V, RatifyRfcInput as W, Scalars as X, RfcStatus as Y, StartRfcReviewInput as Z, FileDisputeAction as _, GovernanceRfcsAction as a, GovernanceDocument as b, RatifyRfcAction as c, WithdrawRfcAction as d, GovernancePublisherDecisionsAction as f, DismissDisputeAction as g, AssignInvestigatorAction as h, SupersedePolicyAction as i, GovernanceState as j, Exact as k, RejectRfcAction as l, AppealDisputeAction as m, GovernancePoliciesAction as n, ImplementRfcAction as o, RecordPublisherDecisionAction as p, ResolveDisputeInput as q, PublishPolicyAction as r, ProposeRfcAction as s, GovernanceAction as t, StartRfcReviewAction as u, GovernanceDisputesAction as v, AssignInvestigatorInput as w, GovernanceLocalState as x, ResolveDisputeAction as y, Policy as z };
//# sourceMappingURL=actions-B0csZEHl.d.ts.map