import type { Client } from "@osdk/client"; import type { AddLinkApiNames, AddLinkSources, AddLinkTargets, CreatableObjectOrInterfaceTypeProperties, CreatableObjectOrInterfaceTypes, DeletableObjectOrInterfaceLocators, RemoveLinkApiNames, RemoveLinkSources, RemoveLinkTargets, UpdatableObjectOrInterfaceLocatorProperties, UpdatableObjectOrInterfaceLocators } from "../edits/EditBatch.js"; import type { AnyEdit } from "../edits/types.js"; import type { EditRequestManager } from "./EditRequestManager.js"; export interface WriteableClientContext { ontologyRid: string | Promise; transactionId: string; editRequestManager: EditRequestManager; } export interface WriteableClient extends Client, WriteMethods { [writeableClientContext]: WriteableClientContext; } export interface WriteMethods { link: < SOL extends AddLinkSources, A extends AddLinkApiNames >(source: SOL, apiName: A, target: AddLinkTargets) => Promise; unlink: < SOL extends RemoveLinkSources, A extends RemoveLinkApiNames >(source: SOL, apiName: A, target: RemoveLinkTargets) => Promise; create: >(obj: OTD, properties: CreatableObjectOrInterfaceTypeProperties) => Promise; delete:
    >(obj: OL) => Promise; update:
      >(obj: OL, properties: UpdatableObjectOrInterfaceLocatorProperties) => Promise; }