// Generated from Fairmint/OpenCapTable/Types/Stock.daml
/* eslint-disable @typescript-eslint/camelcase */
/* eslint-disable @typescript-eslint/no-namespace */
/* eslint-disable @typescript-eslint/no-use-before-define */
import * as jtv from '@mojotech/json-type-validation';
import * as damlTypes from '@daml/types';

export declare type OcfFileType =
  | 'OcfManifestFile'
  | 'OcfStakeholdersFile'
  | 'OcfStockClassesFile'
  | 'OcfStockLegendTemplatesFile'
  | 'OcfStockPlansFile'
  | 'OcfTransactionsFile'
  | 'OcfValuationsFile'
  | 'OcfVestingTermsFile'
  | 'OcfFinancingsFile'
  | 'OcfDocumentsFile'
;

export declare const OcfFileType:
  damlTypes.Serializable<OcfFileType> & {
  }
& { readonly keys: OcfFileType[] } & { readonly [e in OcfFileType]: e }
;


export declare type OcfQuantitySourceType =
  | 'OcfQuantityHumanEstimated'
  | 'OcfQuantityMachineEstimated'
  | 'OcfQuantityUnspecified'
  | 'OcfQuantityInstrumentFixed'
  | 'OcfQuantityInstrumentMax'
  | 'OcfQuantityInstrumentMin'
;

export declare const OcfQuantitySourceType:
  damlTypes.Serializable<OcfQuantitySourceType> & {
  }
& { readonly keys: OcfQuantitySourceType[] } & { readonly [e in OcfQuantitySourceType]: e }
;


export declare type OcfInitialSharesAuthorized =
  |  { tag: 'OcfInitialSharesNumeric'; value: damlTypes.Numeric }
  |  { tag: 'OcfInitialSharesEnum'; value: OcfAuthorizedShares }
;

export declare const OcfInitialSharesAuthorized:
  damlTypes.Serializable<OcfInitialSharesAuthorized> & {
  }
;


export declare type OcfAuthorizedShares =
  | 'OcfAuthorizedSharesNotApplicable'
  | 'OcfAuthorizedSharesUnlimited'
;

export declare const OcfAuthorizedShares:
  damlTypes.Serializable<OcfAuthorizedShares> & {
  }
& { readonly keys: OcfAuthorizedShares[] } & { readonly [e in OcfAuthorizedShares]: e }
;


export declare type OcfShareNumberRange = {
  starting_share_number: damlTypes.Numeric;
  ending_share_number: damlTypes.Numeric;
};

export declare const OcfShareNumberRange:
  damlTypes.Serializable<OcfShareNumberRange> & {
  }
;


export declare type OcfSecurityExemption = {
  description: string;
  jurisdiction: string;
};

export declare const OcfSecurityExemption:
  damlTypes.Serializable<OcfSecurityExemption> & {
  }
;


export declare type OcfStockParent = {
  parent_object_id: string;
  parent_object_type: OcfParentSecurityType;
};

export declare const OcfStockParent:
  damlTypes.Serializable<OcfStockParent> & {
  }
;


export declare type OcfParentSecurityType =
  | 'OcfParentStockPlan'
  | 'OcfParentStock'
  | 'OcfParentWarrant'
  | 'OcfParentConvertible'
;

export declare const OcfParentSecurityType:
  damlTypes.Serializable<OcfParentSecurityType> & {
  }
& { readonly keys: OcfParentSecurityType[] } & { readonly [e in OcfParentSecurityType]: e }
;


export declare type OcfRatio = {
  numerator: damlTypes.Numeric;
  denominator: damlTypes.Numeric;
};

export declare const OcfRatio:
  damlTypes.Serializable<OcfRatio> & {
  }
;


export declare type OcfStockClassType =
  | 'OcfStockClassTypeCommon'
  | 'OcfStockClassTypePreferred'
;

export declare const OcfStockClassType:
  damlTypes.Serializable<OcfStockClassType> & {
  }
& { readonly keys: OcfStockClassType[] } & { readonly [e in OcfStockClassType]: e }
;

