/**
 * AbapGit Typed Schemas
 * 
 * Auto-generated by ts-xsd codegen - DO NOT EDIT
 * 
 * Each schema provides:
 * - _type: Full AbapGitType (for XML build/parse)
 * - _values: Inner values type (for handler mapping)
 * - parse(xml) → fully typed object
 * - build(data) → XML string
 * - schema → raw schema literal
 */

import { abapGitSchema } from '../../lib/handlers/abapgit-schema';

// Raw schemas
import _clas from './schemas/clas';
import _devc from './schemas/devc';
import _doma from './schemas/doma';
import _dtel from './schemas/dtel';
import _intf from './schemas/intf';
import _prog from './schemas/prog';
import _fugr from './schemas/fugr';
import _tabl from './schemas/tabl';
import _ttyp from './schemas/ttyp';
import _bdef from './schemas/bdef';
import _srvd from './schemas/srvd';
import _srvb from './schemas/srvb';

// Full AbapGit types - using flattened root types
// Note: Generated types may be unions, we import the raw schema type
import type { ClasSchema as _ClasSchema } from './types/clas';
import type { DevcSchema as _DevcSchema } from './types/devc';
import type { DomaSchema as _DomaSchema } from './types/doma';
import type { DtelSchema as _DtelSchema } from './types/dtel';
import type { IntfSchema as _IntfSchema } from './types/intf';
import type { ProgSchema as _ProgSchema } from './types/prog';
import type { FugrSchema as _FugrSchema } from './types/fugr';
import type { TablSchema as _TablSchema } from './types/tabl';
import type { TtypSchema as _TtypSchema } from './types/ttyp';
import type { BdefSchema as _BdefSchema } from './types/bdef';
import type { SrvdSchema as _SrvdSchema } from './types/srvd';
import type { SrvbSchema as _SrvbSchema } from './types/srvb';

// Extract the abapGit variant from union types (generated types may be unions)
type ClasAbapGitType = Extract<_ClasSchema, { abapGit: unknown }>;
type DevcAbapGitType = Extract<_DevcSchema, { abapGit: unknown }>;
type DomaAbapGitType = Extract<_DomaSchema, { abapGit: unknown }>;
type DtelAbapGitType = Extract<_DtelSchema, { abapGit: unknown }>;
type IntfAbapGitType = Extract<_IntfSchema, { abapGit: unknown }>;
type ProgAbapGitType = Extract<_ProgSchema, { abapGit: unknown }>;
type FugrAbapGitType = Extract<_FugrSchema, { abapGit: unknown }>;
type TablAbapGitType = Extract<_TablSchema, { abapGit: unknown }>;
type TtypAbapGitType = Extract<_TtypSchema, { abapGit: unknown }>;
type BdefAbapGitType = Extract<_BdefSchema, { abapGit: unknown }>;
type SrvdAbapGitType = Extract<_SrvdSchema, { abapGit: unknown }>;
type SrvbAbapGitType = Extract<_SrvbSchema, { abapGit: unknown }>;

// AbapGit schema instances - using flattened types with values extracted from abapGit.abap.values
export const clas = abapGitSchema<ClasAbapGitType, ClasAbapGitType['abapGit']['abap']['values']>(_clas);
export const devc = abapGitSchema<DevcAbapGitType, DevcAbapGitType['abapGit']['abap']['values']>(_devc);
export const doma = abapGitSchema<DomaAbapGitType, DomaAbapGitType['abapGit']['abap']['values']>(_doma);
export const dtel = abapGitSchema<DtelAbapGitType, DtelAbapGitType['abapGit']['abap']['values']>(_dtel);
export const intf = abapGitSchema<IntfAbapGitType, IntfAbapGitType['abapGit']['abap']['values']>(_intf);
export const prog = abapGitSchema<ProgAbapGitType, ProgAbapGitType['abapGit']['abap']['values']>(_prog);
export const fugr = abapGitSchema<FugrAbapGitType, FugrAbapGitType['abapGit']['abap']['values']>(_fugr);
export const tabl = abapGitSchema<TablAbapGitType, TablAbapGitType['abapGit']['abap']['values']>(_tabl);
export const ttyp = abapGitSchema<TtypAbapGitType, TtypAbapGitType['abapGit']['abap']['values']>(_ttyp);
export const bdef = abapGitSchema<BdefAbapGitType, BdefAbapGitType['abapGit']['abap']['values']>(_bdef);
export const srvd = abapGitSchema<SrvdAbapGitType, SrvdAbapGitType['abapGit']['abap']['values']>(_srvd);
export const srvb = abapGitSchema<SrvbAbapGitType, SrvbAbapGitType['abapGit']['abap']['values']>(_srvb);

// Re-export types and utilities
export { abapGitSchema, type AbapGitSchema, type InferAbapGitType, type InferValuesType } from '../../lib/handlers/abapgit-schema';
