import {type Component} from 'vue'; import {type PdkLogger} from '../services'; import { type ADMIN_COMPONENT_PREFIX, type AdminComponent, type AdminView, type optionalAdminActionContainerComponentNames, type optionalAdminComponentNames, type optionalAdminPlainWrapperComponentNames, type requiredAdminComponentNames, } from '../data'; import {type AdminContextObject, type AdminInstanceContext} from './context.types'; import {type AdminConfiguration} from './configuration.types'; export type RequiredAdminComponentName = (typeof requiredAdminComponentNames)[number]; export type OptionalAdminComponentName = | (typeof optionalAdminComponentNames)[number] | (typeof optionalAdminPlainWrapperComponentNames)[number] | (typeof optionalAdminActionContainerComponentNames)[number]; export type PrefixedAdminComponent = `${typeof ADMIN_COMPONENT_PREFIX}${A}`; export type AdminComponentMap = Record & Partial>; /** * Prefer using AdminComponentMap instead to reduce bundle size. */ export type PrefixedAdminComponentMap = Record, Component> & Partial, Component>>; export type ComponentImportFunction = () => Promise<{ default: Component; }>; export interface AdminAppConfig { appName: string; config: AdminConfiguration; context: AdminContextObject; logger: PdkLogger; view?: AdminView; } export interface AdminInstance extends Omit { context: Partial; }