import { ObjectTypeDefinition, CompileTimeMetadata, InterfaceDefinition } from '@osdk/client'; import { A as AnyEdit, a as AddLink, O as ObjectLocator, R as RemoveLink, C as CreateObject, b as CreateObjectForInterface, D as DeleteObject, c as DeleteObjectForInterface, I as InterfaceLocator, U as UpdateObject, d as UpdateObjectForInterface } from './internal-CmSoe_xi.cjs'; interface ObjectTypeDefinitionForLocator
    > extends ObjectTypeDefinition { apiName: OL["$apiName"]; } interface InterfaceDefinitionForLocator> extends InterfaceDefinition { apiName: IL["$apiName"]; } type AddLinkSources = X extends AddLink ? ObjectLocator : never; type AddLinkApiNames> = X extends AddLink, infer A> ? A : never; type AddLinkTargets, A extends string> = X extends AddLink, A> ? (X extends AddLink ? (CompileTimeMetadata["links"][A]["multiplicity"] extends true ? Array | X["target"] : X["target"]) : never) : never; type RemoveLinkSources = X extends RemoveLink ? ObjectLocator : never; type RemoveLinkApiNames> = X extends RemoveLink, infer L> ? L : never; type RemoveLinkTargets, A extends string> = X extends RemoveLink, A> ? (X extends RemoveLink ? (CompileTimeMetadata["links"][A]["multiplicity"] extends true ? Array | X["target"] : X["target"]) : never) : never; type CreatableObjectOrInterfaceTypes = X extends CreateObject ? OTD : X extends CreateObjectForInterface ? ID : never; type CreatableObjectOrInterfaceTypeProperties = X extends CreateObject ? OTD extends OI ? X["properties"] : never : X extends CreateObjectForInterface ? ID extends OI ? X["properties"] : never : never; type DeletableObjectOrInterfaceLocators = X extends DeleteObject ? ObjectLocator : X extends DeleteObjectForInterface ? InterfaceLocator : never; type UpdatableObjectOrInterfaceLocators = X extends UpdateObject ? ObjectLocator : X extends UpdateObjectForInterface ? InterfaceLocator : never; type UpdatableObjectOrInterfaceLocatorProperties> = X extends UpdateObject> ? X["properties"] : X extends UpdateObjectForInterface> ? X["properties"] : never; interface EditBatch { link: , A extends AddLinkApiNames>(source: SOL, apiName: A, target: AddLinkTargets) => void; unlink: , A extends RemoveLinkApiNames>(source: SOL, apiName: A, target: RemoveLinkTargets) => void; create: >(objectOrInterfaceType: OI, properties: CreatableObjectOrInterfaceTypeProperties) => void; delete:
      >(obj: OL) => void; update:
        >(obj: OL, properties: UpdatableObjectOrInterfaceLocatorProperties) => void; getEdits: () => X[]; } export type { AddLinkSources as A, CreatableObjectOrInterfaceTypes as C, DeletableObjectOrInterfaceLocators as D, EditBatch as E, RemoveLinkSources as R, UpdatableObjectOrInterfaceLocators as U, AddLinkApiNames as a, AddLinkTargets as b, RemoveLinkApiNames as c, RemoveLinkTargets as d, CreatableObjectOrInterfaceTypeProperties as e, UpdatableObjectOrInterfaceLocatorProperties as f };