import { type AdminContextKey, type Plugin } from '@myparcel-pdk/common'; import { type FormInstance } from '@myparcel/vue-form-builder'; import { type OneOrMore, type Replace } from '@myparcel/ts-utils'; import { type AdminInstanceContextKey, type AdminModalKey } from '../data'; import { type BackendPdkEndpointObject } from './endpoints.types'; export type AdminContextObject = Replace & Partial; export type GlobalAdminContext = Replace; export type AnyAdminContext = AdminContext; export type AdminContext = T extends keyof AdminContextObject ? AdminContextObject[T] : never; export type AdminInstanceContext = { [AdminInstanceContextKey.OrderIdentifier]: Plugin.ModelContextOrderDataContext['externalIdentifier']; [AdminInstanceContextKey.ProductIdentifier]: Plugin.ModelContextProductDataContext['externalIdentifier']; }; type BaseModalContext = { form?: FormInstance; }; export type AdminModalContext = (BaseModalContext & (T extends AdminModalKey.ShipmentOptions ? { orderIds?: OneOrMore; } : unknown)) | null; export {};