import React from 'react'; import { OakComponentOption as BaseOakComponentOption, DataOption, MethodOption, ReactComponentProps } from 'oak-frontend-base'; import { EntityDict as BaseEntityDict } from 'oak-domain/lib/types/Entity'; import { EntityDict } from '../oak-app-domain'; import { Aspect } from 'oak-domain/lib/types/Aspect'; import { Feature } from 'oak-frontend-base/es/types/Feature'; import { BasicFeatures } from 'oak-frontend-base'; import { CommonAspectDict } from 'oak-common-aspect'; import { GeneralFeatures } from '../features'; import GeneralAspectDict from '../aspects/AspectDict'; import { BackendRuntimeContext } from '../context/BackendRuntimeContext'; import { FrontendRuntimeContext } from '../context/FrontendRuntimeContext'; export type OakComponentOption, FrontCxt extends FrontendRuntimeContext>, AD extends Record>, FD extends Record, FormedData extends Record, TData extends Record, TProperty extends DataOption, TMethod extends Record> = BaseOakComponentOption, FD & GFD>, FormedData, TData, TProperty, TMethod, { subscribeMpMessage: (messageTypes: string[], haveToAccept?: boolean, tip?: string) => Promise; }> & Partial<{ userInsensitive?: true; wechatMp: { relatedMessageTypes?: string[]; }; }>; export type GAD> = GeneralAspectDict & CommonAspectDict; type BF, FrontCxt extends FrontendRuntimeContext, AD extends GAD> = BasicFeatures; type GF, FrontCxt extends FrontendRuntimeContext, AD extends GAD> = GeneralFeatures; export type GFD, FrontCxt extends FrontendRuntimeContext, AD extends GAD> = BF & GF; export type MakeOakComponent, FrontCxt extends FrontendRuntimeContext>, AD extends Record>, FD extends Record> = (options: OakComponentOption) => (props: ReactComponentProps) => React.ReactElement; export {};