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

//#region document-models/expense-report/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 AddBillingStatementInput = {
  billingStatementId: Scalars["OID"]["input"];
  wallet: Scalars["EthereumAddress"]["input"];
};
type AddLineItemGroupInput = {
  id: Scalars["ID"]["input"];
  label?: InputMaybe<Scalars["String"]["input"]>;
  parentId?: InputMaybe<Scalars["ID"]["input"]>;
};
type AddLineItemInput = {
  lineItem: LineItemInput;
  wallet: Scalars["EthereumAddress"]["input"];
};
type AddWalletInput = {
  name?: InputMaybe<Scalars["String"]["input"]>;
  wallet: Scalars["EthereumAddress"]["input"];
};
type ExpenseReportState = {
  endDate: Maybe<Scalars["DateTime"]["output"]>;
  groups: Array<LineItemGroup>;
  ownerId: Maybe<Scalars["PHID"]["output"]>;
  periodEnd: Maybe<Scalars["DateTime"]["output"]>;
  periodStart: Maybe<Scalars["DateTime"]["output"]>;
  startDate: Maybe<Scalars["DateTime"]["output"]>;
  status: ExpenseReportStatus;
  wallets: Array<Wallet>;
};
type ExpenseReportStatus = "DRAFT" | "FINAL" | "REVIEW";
type ExpenseReportStatusInput = "DRAFT" | "FINAL" | "REVIEW";
type GroupTotals = {
  group: Maybe<Scalars["ID"]["output"]>;
  totalActuals: Maybe<Scalars["Float"]["output"]>;
  totalBudget: Maybe<Scalars["Float"]["output"]>;
  totalForecast: Maybe<Scalars["Float"]["output"]>;
  totalPayments: Maybe<Scalars["Float"]["output"]>;
};
type GroupTotalsInput = {
  group: Scalars["ID"]["input"];
  totalActuals?: InputMaybe<Scalars["Float"]["input"]>;
  totalBudget?: InputMaybe<Scalars["Float"]["input"]>;
  totalForecast?: InputMaybe<Scalars["Float"]["input"]>;
  totalPayments?: InputMaybe<Scalars["Float"]["input"]>;
};
type LineItem = {
  actuals: Maybe<Scalars["Float"]["output"]>;
  budget: Maybe<Scalars["Float"]["output"]>;
  comments: Maybe<Scalars["String"]["output"]>;
  forecast: Maybe<Scalars["Float"]["output"]>;
  group: Maybe<Scalars["ID"]["output"]>;
  id: Maybe<Scalars["ID"]["output"]>;
  label: Maybe<Scalars["String"]["output"]>;
  payments: Maybe<Scalars["Float"]["output"]>;
};
type LineItemGroup = {
  id: Scalars["ID"]["output"];
  label: Maybe<Scalars["String"]["output"]>;
  parentId: Maybe<Scalars["ID"]["output"]>;
};
type LineItemInput = {
  actuals?: InputMaybe<Scalars["Float"]["input"]>;
  budget?: InputMaybe<Scalars["Float"]["input"]>;
  comments?: InputMaybe<Scalars["String"]["input"]>;
  forecast?: InputMaybe<Scalars["Float"]["input"]>;
  group?: InputMaybe<Scalars["ID"]["input"]>;
  id: Scalars["ID"]["input"];
  label?: InputMaybe<Scalars["String"]["input"]>;
  payments?: InputMaybe<Scalars["Float"]["input"]>;
};
type RemoveBillingStatementInput = {
  billingStatementId: Scalars["OID"]["input"];
  wallet: Scalars["EthereumAddress"]["input"];
};
type RemoveGroupTotalsInput = {
  groupId: Scalars["ID"]["input"];
  wallet: Scalars["EthereumAddress"]["input"];
};
type RemoveLineItemGroupInput = {
  id: Scalars["ID"]["input"];
};
type RemoveLineItemInput = {
  lineItemId: Scalars["ID"]["input"];
  wallet: Scalars["EthereumAddress"]["input"];
};
type RemoveWalletInput = {
  wallet: Scalars["EthereumAddress"]["input"];
};
type SetGroupTotalsInput = {
  groupTotals: GroupTotalsInput;
  wallet: Scalars["EthereumAddress"]["input"];
};
type SetOwnerIdInput = {
  ownerId: Scalars["PHID"]["input"];
};
type SetPeriodEndInput = {
  periodEnd: Scalars["DateTime"]["input"];
};
type SetPeriodInput = {
  endDate?: InputMaybe<Scalars["DateTime"]["input"]>;
  startDate?: InputMaybe<Scalars["DateTime"]["input"]>;
};
type SetPeriodStartInput = {
  periodStart: Scalars["DateTime"]["input"];
};
type SetStatusInput = {
  status: ExpenseReportStatusInput;
};
type UpdateLineItemGroupInput = {
  id: Scalars["ID"]["input"];
  label?: InputMaybe<Scalars["String"]["input"]>;
  parentId?: InputMaybe<Scalars["ID"]["input"]>;
};
type UpdateLineItemInput = {
  actuals?: InputMaybe<Scalars["Float"]["input"]>;
  budget?: InputMaybe<Scalars["Float"]["input"]>;
  comments?: InputMaybe<Scalars["String"]["input"]>;
  forecast?: InputMaybe<Scalars["Float"]["input"]>;
  group?: InputMaybe<Scalars["ID"]["input"]>;
  label?: InputMaybe<Scalars["String"]["input"]>;
  lineItemId: Scalars["ID"]["input"];
  payments?: InputMaybe<Scalars["Float"]["input"]>;
  wallet: Scalars["EthereumAddress"]["input"];
};
type UpdateWalletInput = {
  accountDocumentId?: InputMaybe<Scalars["PHID"]["input"]>;
  accountTransactionsDocumentId?: InputMaybe<Scalars["PHID"]["input"]>;
  address: Scalars["EthereumAddress"]["input"];
  name?: InputMaybe<Scalars["String"]["input"]>;
};
type Wallet = {
  accountDocumentId: Maybe<Scalars["PHID"]["output"]>;
  accountTransactionsDocumentId: Maybe<Scalars["PHID"]["output"]>;
  billingStatements: Maybe<Array<Maybe<Scalars["OID"]["output"]>>>;
  lineItems: Maybe<Array<Maybe<LineItem>>>;
  name: Maybe<Scalars["String"]["output"]>;
  totals: Maybe<Array<Maybe<GroupTotals>>>;
  wallet: Maybe<Scalars["EthereumAddress"]["output"]>;
};
//#endregion
//#region document-models/expense-report/v1/gen/types.d.ts
type ExpenseReportLocalState = Record<PropertyKey, never>;
type ExpenseReportPHState = PHBaseState & {
  global: ExpenseReportState;
  local: ExpenseReportLocalState;
};
type ExpenseReportDocument = PHDocument<ExpenseReportPHState>;
//#endregion
//#region document-models/expense-report/v1/gen/wallet/actions.d.ts
type AddWalletAction = Action & {
  type: "ADD_WALLET";
  input: AddWalletInput;
};
type RemoveWalletAction = Action & {
  type: "REMOVE_WALLET";
  input: RemoveWalletInput;
};
type AddBillingStatementAction = Action & {
  type: "ADD_BILLING_STATEMENT";
  input: AddBillingStatementInput;
};
type RemoveBillingStatementAction = Action & {
  type: "REMOVE_BILLING_STATEMENT";
  input: RemoveBillingStatementInput;
};
type AddLineItemAction = Action & {
  type: "ADD_LINE_ITEM";
  input: AddLineItemInput;
};
type UpdateLineItemAction = Action & {
  type: "UPDATE_LINE_ITEM";
  input: UpdateLineItemInput;
};
type RemoveLineItemAction = Action & {
  type: "REMOVE_LINE_ITEM";
  input: RemoveLineItemInput;
};
type AddLineItemGroupAction = Action & {
  type: "ADD_LINE_ITEM_GROUP";
  input: AddLineItemGroupInput;
};
type UpdateLineItemGroupAction = Action & {
  type: "UPDATE_LINE_ITEM_GROUP";
  input: UpdateLineItemGroupInput;
};
type RemoveLineItemGroupAction = Action & {
  type: "REMOVE_LINE_ITEM_GROUP";
  input: RemoveLineItemGroupInput;
};
type SetGroupTotalsAction = Action & {
  type: "SET_GROUP_TOTALS";
  input: SetGroupTotalsInput;
};
type RemoveGroupTotalsAction = Action & {
  type: "REMOVE_GROUP_TOTALS";
  input: RemoveGroupTotalsInput;
};
type SetPeriodStartAction = Action & {
  type: "SET_PERIOD_START";
  input: SetPeriodStartInput;
};
type SetPeriodEndAction = Action & {
  type: "SET_PERIOD_END";
  input: SetPeriodEndInput;
};
type UpdateWalletAction = Action & {
  type: "UPDATE_WALLET";
  input: UpdateWalletInput;
};
type SetOwnerIdAction = Action & {
  type: "SET_OWNER_ID";
  input: SetOwnerIdInput;
};
type SetStatusAction = Action & {
  type: "SET_STATUS";
  input: SetStatusInput;
};
type SetPeriodAction = Action & {
  type: "SET_PERIOD";
  input: SetPeriodInput;
};
type ExpenseReportWalletAction = AddWalletAction | RemoveWalletAction | AddBillingStatementAction | RemoveBillingStatementAction | AddLineItemAction | UpdateLineItemAction | RemoveLineItemAction | AddLineItemGroupAction | UpdateLineItemGroupAction | RemoveLineItemGroupAction | SetGroupTotalsAction | RemoveGroupTotalsAction | SetPeriodStartAction | SetPeriodEndAction | UpdateWalletAction | SetOwnerIdAction | SetStatusAction | SetPeriodAction;
//#endregion
//#region document-models/expense-report/v1/gen/actions.d.ts
type ExpenseReportAction = ExpenseReportWalletAction;
//#endregion
export { SetPeriodStartInput as $, ExpenseReportStatus as A, MakeMaybe as B, ExpenseReportPHState as C, AddWalletInput as D, AddLineItemInput as E, InputMaybe as F, RemoveLineItemGroupInput as G, Maybe as H, LineItem as I, Scalars as J, RemoveLineItemInput as K, LineItemGroup as L, GroupTotals as M, GroupTotalsInput as N, Exact as O, Incremental as P, SetPeriodInput as Q, LineItemInput as R, ExpenseReportLocalState as S, AddLineItemGroupInput as T, RemoveBillingStatementInput as U, MakeOptional as V, RemoveGroupTotalsInput as W, SetOwnerIdInput as X, SetGroupTotalsInput as Y, SetPeriodEndInput as Z, SetStatusAction as _, AddWalletAction as a, UpdateWalletAction as b, RemoveGroupTotalsAction as c, RemoveWalletAction as d, SetStatusInput as et, SetGroupTotalsAction as f, SetPeriodStartAction as g, SetPeriodEndAction as h, AddLineItemGroupAction as i, Wallet as it, ExpenseReportStatusInput as j, ExpenseReportState as k, RemoveLineItemAction as l, SetPeriodAction as m, AddBillingStatementAction as n, UpdateLineItemInput as nt, ExpenseReportWalletAction as o, SetOwnerIdAction as p, RemoveWalletInput as q, AddLineItemAction as r, UpdateWalletInput as rt, RemoveBillingStatementAction as s, ExpenseReportAction as t, UpdateLineItemGroupInput as tt, RemoveLineItemGroupAction as u, UpdateLineItemAction as v, AddBillingStatementInput as w, ExpenseReportDocument as x, UpdateLineItemGroupAction as y, MakeEmpty as z };
//# sourceMappingURL=actions-Ctin9BVl.d.ts.map