import * as Types from "../../../__generated__/types.js";
import * as gm from "graphql-modules";
export namespace LedgerModule {
  interface DefinedFields {
    Query: 'chargesWithLedgerChanges' | 'ledgerRecordsByDates' | 'ledgerRecordsByFinancialEntity';
    Mutation: 'regenerateLedgerRecords' | 'lockLedgerRecords';
    LedgerRecord: 'id' | 'debitAmount1' | 'debitAmount2' | 'creditAmount1' | 'creditAmount2' | 'localCurrencyDebitAmount1' | 'localCurrencyDebitAmount2' | 'localCurrencyCreditAmount1' | 'localCurrencyCreditAmount2' | 'invoiceDate' | 'valueDate' | 'description' | 'reference';
    LedgerBalanceUnbalancedEntity: 'entity' | 'balance';
    LedgerBalanceInfo: 'isBalanced' | 'unbalancedEntities';
    Ledger: 'records' | 'balance' | 'validate';
    LedgerValidation: 'isValid' | 'matches' | 'differences' | 'errors';
    ChargesWithLedgerChangesResult: 'progress' | 'charge';
    CommonCharge: 'ledger';
    FinancialCharge: 'ledger';
    ConversionCharge: 'ledger';
    SalaryCharge: 'ledger';
    InternalTransferCharge: 'ledger';
    DividendCharge: 'ledger';
    BusinessTripCharge: 'ledger';
    MonthlyVatCharge: 'ledger';
    BankDepositCharge: 'ledger';
    ForeignSecuritiesCharge: 'ledger';
    CreditcardBankCharge: 'ledger';
    ChargeMetadata: 'isLedgerLocked';
    Charge: 'ledger';
  };
  
  export type Query = Pick<Types.Query, DefinedFields['Query']>;
  export type ChargesWithLedgerChangesResult = Pick<Types.ChargesWithLedgerChangesResult, DefinedFields['ChargesWithLedgerChangesResult']>;
  export type ChargeFilter = Types.ChargeFilter;
  export type LedgerRecord = Pick<Types.LedgerRecord, DefinedFields['LedgerRecord']>;
  export type TimelessDate = Types.TimelessDate;
  export type UUID = Types.Uuid;
  export type Mutation = Pick<Types.Mutation, DefinedFields['Mutation']>;
  export type GeneratedLedgerRecords = Types.GeneratedLedgerRecords;
  export type FinancialAmount = Types.FinancialAmount;
  export type DateTime = Types.DateTime;
  export type Charge = Types.Charge;
  export type Ledger = Pick<Types.Ledger, DefinedFields['Ledger']>;
  export type CommonCharge = Types.CommonCharge;
  export type FinancialCharge = Types.FinancialCharge;
  export type ConversionCharge = Types.ConversionCharge;
  export type SalaryCharge = Types.SalaryCharge;
  export type InternalTransferCharge = Types.InternalTransferCharge;
  export type DividendCharge = Types.DividendCharge;
  export type BusinessTripCharge = Types.BusinessTripCharge;
  export type MonthlyVatCharge = Types.MonthlyVatCharge;
  export type BankDepositCharge = Types.BankDepositCharge;
  export type ForeignSecuritiesCharge = Types.ForeignSecuritiesCharge;
  export type CreditcardBankCharge = Types.CreditcardBankCharge;
  export type ChargeMetadata = Types.ChargeMetadata;
  export type LedgerBalanceUnbalancedEntity = Pick<Types.LedgerBalanceUnbalancedEntity, DefinedFields['LedgerBalanceUnbalancedEntity']>;
  export type FinancialEntity = Types.FinancialEntity;
  export type LedgerBalanceInfo = Pick<Types.LedgerBalanceInfo, DefinedFields['LedgerBalanceInfo']>;
  export type LedgerValidation = Pick<Types.LedgerValidation, DefinedFields['LedgerValidation']>;
  export type CommonError = Types.CommonError;
  
  export type QueryResolvers = Pick<Types.QueryResolvers, DefinedFields['Query']>;
  export type MutationResolvers = Pick<Types.MutationResolvers, DefinedFields['Mutation']>;
  export type LedgerRecordResolvers = Pick<Types.LedgerRecordResolvers, DefinedFields['LedgerRecord']>;
  export type LedgerBalanceUnbalancedEntityResolvers = Pick<Types.LedgerBalanceUnbalancedEntityResolvers, DefinedFields['LedgerBalanceUnbalancedEntity']>;
  export type LedgerBalanceInfoResolvers = Pick<Types.LedgerBalanceInfoResolvers, DefinedFields['LedgerBalanceInfo']>;
  export type LedgerResolvers = Pick<Types.LedgerResolvers, DefinedFields['Ledger'] | '__isTypeOf'>;
  export type LedgerValidationResolvers = Pick<Types.LedgerValidationResolvers, DefinedFields['LedgerValidation']>;
  export type ChargesWithLedgerChangesResultResolvers = Pick<Types.ChargesWithLedgerChangesResultResolvers, DefinedFields['ChargesWithLedgerChangesResult']>;
  export type CommonChargeResolvers = Pick<Types.CommonChargeResolvers, DefinedFields['CommonCharge']>;
  export type FinancialChargeResolvers = Pick<Types.FinancialChargeResolvers, DefinedFields['FinancialCharge']>;
  export type ConversionChargeResolvers = Pick<Types.ConversionChargeResolvers, DefinedFields['ConversionCharge']>;
  export type SalaryChargeResolvers = Pick<Types.SalaryChargeResolvers, DefinedFields['SalaryCharge']>;
  export type InternalTransferChargeResolvers = Pick<Types.InternalTransferChargeResolvers, DefinedFields['InternalTransferCharge']>;
  export type DividendChargeResolvers = Pick<Types.DividendChargeResolvers, DefinedFields['DividendCharge']>;
  export type BusinessTripChargeResolvers = Pick<Types.BusinessTripChargeResolvers, DefinedFields['BusinessTripCharge']>;
  export type MonthlyVatChargeResolvers = Pick<Types.MonthlyVatChargeResolvers, DefinedFields['MonthlyVatCharge']>;
  export type BankDepositChargeResolvers = Pick<Types.BankDepositChargeResolvers, DefinedFields['BankDepositCharge']>;
  export type ForeignSecuritiesChargeResolvers = Pick<Types.ForeignSecuritiesChargeResolvers, DefinedFields['ForeignSecuritiesCharge']>;
  export type CreditcardBankChargeResolvers = Pick<Types.CreditcardBankChargeResolvers, DefinedFields['CreditcardBankCharge']>;
  export type ChargeMetadataResolvers = Pick<Types.ChargeMetadataResolvers, DefinedFields['ChargeMetadata']>;
  export type ChargeResolvers = Pick<Types.ChargeResolvers, DefinedFields['Charge']>;
  
  export interface Resolvers {
    Query?: QueryResolvers;
    Mutation?: MutationResolvers;
    LedgerRecord?: LedgerRecordResolvers;
    LedgerBalanceUnbalancedEntity?: LedgerBalanceUnbalancedEntityResolvers;
    LedgerBalanceInfo?: LedgerBalanceInfoResolvers;
    Ledger?: LedgerResolvers;
    LedgerValidation?: LedgerValidationResolvers;
    ChargesWithLedgerChangesResult?: ChargesWithLedgerChangesResultResolvers;
    CommonCharge?: CommonChargeResolvers;
    FinancialCharge?: FinancialChargeResolvers;
    ConversionCharge?: ConversionChargeResolvers;
    SalaryCharge?: SalaryChargeResolvers;
    InternalTransferCharge?: InternalTransferChargeResolvers;
    DividendCharge?: DividendChargeResolvers;
    BusinessTripCharge?: BusinessTripChargeResolvers;
    MonthlyVatCharge?: MonthlyVatChargeResolvers;
    BankDepositCharge?: BankDepositChargeResolvers;
    ForeignSecuritiesCharge?: ForeignSecuritiesChargeResolvers;
    CreditcardBankCharge?: CreditcardBankChargeResolvers;
    ChargeMetadata?: ChargeMetadataResolvers;
  };
  
  export interface MiddlewareMap {
    '*'?: {
      '*'?: gm.Middleware[];
    };
    Query?: {
      '*'?: gm.Middleware[];
      chargesWithLedgerChanges?: gm.Middleware[];
      ledgerRecordsByDates?: gm.Middleware[];
      ledgerRecordsByFinancialEntity?: gm.Middleware[];
    };
    Mutation?: {
      '*'?: gm.Middleware[];
      regenerateLedgerRecords?: gm.Middleware[];
      lockLedgerRecords?: gm.Middleware[];
    };
    LedgerRecord?: {
      '*'?: gm.Middleware[];
      id?: gm.Middleware[];
      debitAmount1?: gm.Middleware[];
      debitAmount2?: gm.Middleware[];
      creditAmount1?: gm.Middleware[];
      creditAmount2?: gm.Middleware[];
      localCurrencyDebitAmount1?: gm.Middleware[];
      localCurrencyDebitAmount2?: gm.Middleware[];
      localCurrencyCreditAmount1?: gm.Middleware[];
      localCurrencyCreditAmount2?: gm.Middleware[];
      invoiceDate?: gm.Middleware[];
      valueDate?: gm.Middleware[];
      description?: gm.Middleware[];
      reference?: gm.Middleware[];
    };
    CommonCharge?: {
      '*'?: gm.Middleware[];
      ledger?: gm.Middleware[];
    };
    FinancialCharge?: {
      '*'?: gm.Middleware[];
      ledger?: gm.Middleware[];
    };
    ConversionCharge?: {
      '*'?: gm.Middleware[];
      ledger?: gm.Middleware[];
    };
    SalaryCharge?: {
      '*'?: gm.Middleware[];
      ledger?: gm.Middleware[];
    };
    InternalTransferCharge?: {
      '*'?: gm.Middleware[];
      ledger?: gm.Middleware[];
    };
    DividendCharge?: {
      '*'?: gm.Middleware[];
      ledger?: gm.Middleware[];
    };
    BusinessTripCharge?: {
      '*'?: gm.Middleware[];
      ledger?: gm.Middleware[];
    };
    MonthlyVatCharge?: {
      '*'?: gm.Middleware[];
      ledger?: gm.Middleware[];
    };
    BankDepositCharge?: {
      '*'?: gm.Middleware[];
      ledger?: gm.Middleware[];
    };
    ForeignSecuritiesCharge?: {
      '*'?: gm.Middleware[];
      ledger?: gm.Middleware[];
    };
    CreditcardBankCharge?: {
      '*'?: gm.Middleware[];
      ledger?: gm.Middleware[];
    };
    ChargeMetadata?: {
      '*'?: gm.Middleware[];
      isLedgerLocked?: gm.Middleware[];
    };
    LedgerBalanceUnbalancedEntity?: {
      '*'?: gm.Middleware[];
      entity?: gm.Middleware[];
      balance?: gm.Middleware[];
    };
    LedgerBalanceInfo?: {
      '*'?: gm.Middleware[];
      isBalanced?: gm.Middleware[];
      unbalancedEntities?: gm.Middleware[];
    };
    Ledger?: {
      '*'?: gm.Middleware[];
      records?: gm.Middleware[];
      balance?: gm.Middleware[];
      validate?: gm.Middleware[];
    };
    LedgerValidation?: {
      '*'?: gm.Middleware[];
      isValid?: gm.Middleware[];
      matches?: gm.Middleware[];
      differences?: gm.Middleware[];
      errors?: gm.Middleware[];
    };
    ChargesWithLedgerChangesResult?: {
      '*'?: gm.Middleware[];
      progress?: gm.Middleware[];
      charge?: gm.Middleware[];
    };
  };
}