import type { TypedDocumentNode as DocumentNode } from '@graphql-typed-document-node/core';
export type Maybe<T> = T | null;
export type InputMaybe<T> = Maybe<T>;
export type Exact<T extends { [key: string]: unknown }> = { [K in keyof T]: T[K] };
export type MakeOptional<T, K extends keyof T> = Omit<T, K> & { [SubKey in K]?: Maybe<T[SubKey]> };
export type MakeMaybe<T, K extends keyof T> = Omit<T, K> & { [SubKey in K]: Maybe<T[SubKey]> };
export type MakeEmpty<T extends { [key: string]: unknown }, K extends keyof T> = { [_ in K]?: never };
export 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 */
export 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; }
};

/** Balance information for a team's account from TigerBeetle. */
export type TeamBalance = {
  __typename?: 'TeamBalance';
  /** Current balance (credits - debits) */
  balance: Scalars['Float']['output'];
  /** Total credits posted */
  creditsPosted: Scalars['Float']['output'];
  /** Total debits posted */
  debitsPosted: Scalars['Float']['output'];
  /** Whether account exists in TigerBeetle */
  exists: Scalars['Boolean']['output'];
};

export type TeamQuery = {
  __typename?: 'TeamQuery';
  /** Get balance for the authenticated team */
  teamBalance?: Maybe<TeamBalance>;
  /** Get transactions for the authenticated team */
  teamTransactions?: Maybe<Array<Maybe<TeamTransaction>>>;
};


export type TeamQueryTeamTransactionsArgs = {
  limit?: InputMaybe<Scalars['Int']['input']>;
};

/** Transaction from TigerBeetle. */
export type TeamTransaction = {
  __typename?: 'TeamTransaction';
  amount: Scalars['Float']['output'];
  /** Operation code */
  code?: Maybe<Scalars['Int']['output']>;
  /** Operation code name from OperationCode table */
  codeName?: Maybe<Scalars['String']['output']>;
  /** UUID of the other account in transaction */
  counterpartyUuid?: Maybe<Scalars['String']['output']>;
  /** 'credit' or 'debit' relative to team account */
  direction: Scalars['String']['output'];
  id: Scalars['String']['output'];
  /** TigerBeetle timestamp */
  timestamp?: Maybe<Scalars['Float']['output']>;
};

export type GetTeamBalanceQueryVariables = Exact<{ [key: string]: never; }>;


export type GetTeamBalanceQueryResult = { __typename?: 'TeamQuery', teamBalance?: { __typename?: 'TeamBalance', balance: number, creditsPosted: number, debitsPosted: number, exists: boolean } | null };

export type GetTeamTransactionsQueryVariables = Exact<{
  limit?: InputMaybe<Scalars['Int']['input']>;
}>;


export type GetTeamTransactionsQueryResult = { __typename?: 'TeamQuery', teamTransactions?: Array<{ __typename?: 'TeamTransaction', id: string, amount: number, timestamp?: number | null, code?: number | null, codeName?: string | null, direction: string, counterpartyUuid?: string | null } | null> | null };


export const GetTeamBalanceDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"GetTeamBalance"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"teamBalance"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"balance"}},{"kind":"Field","name":{"kind":"Name","value":"creditsPosted"}},{"kind":"Field","name":{"kind":"Name","value":"debitsPosted"}},{"kind":"Field","name":{"kind":"Name","value":"exists"}}]}}]}}]} as unknown as DocumentNode<GetTeamBalanceQueryResult, GetTeamBalanceQueryVariables>;
export const GetTeamTransactionsDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"GetTeamTransactions"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"limit"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"Int"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"teamTransactions"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"limit"},"value":{"kind":"Variable","name":{"kind":"Name","value":"limit"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"amount"}},{"kind":"Field","name":{"kind":"Name","value":"timestamp"}},{"kind":"Field","name":{"kind":"Name","value":"code"}},{"kind":"Field","name":{"kind":"Name","value":"codeName"}},{"kind":"Field","name":{"kind":"Name","value":"direction"}},{"kind":"Field","name":{"kind":"Name","value":"counterpartyUuid"}}]}}]}}]} as unknown as DocumentNode<GetTeamTransactionsQueryResult, GetTeamTransactionsQueryVariables>;