import * as React from 'react'; import React__default, { Dispatch, SetStateAction, CSSProperties, Key, ReactNode, HTMLAttributes } from 'react'; import { bg as RuntimeAuthHeadersProvider, a as FormRuntimeApi, a9 as AttachmentItem, ab as FilePreviewCapability, aa as PreparedFilePreview, o as InitiatorSelectRequirement, I as InitiatorSelectCandidate, bf as ProcessPreviewProps, an as ApprovalTimelineProps } from '../ProcessPreview-DSUIJi5V.mjs'; type PageQueryValue = string | string[]; type PageHttpMethod = "get" | "post" | "put" | "delete" | "patch"; type PageRequestCache = "default" | "no-store" | "reload" | "no-cache" | "force-cache" | "only-if-cached"; type PageScope = "platform" | "app"; type PageUiPermissionType = "route" | "button"; interface FieldPermissionDto { componentName: string; fieldName: string; label: string; value: "FORM_FILED_EDIT" | "FORM_FILED_VIEW" | "FORM_FILED_HIDDEN"; } type FieldAccessLevel = "edit" | "readonly" | "hidden"; interface FieldAccessPolicyItemDto { fieldId: string; access: FieldAccessLevel; } interface FieldAccessPolicyDto { defaultAccess: FieldAccessLevel; fields?: FieldAccessPolicyItemDto[]; } type ViewFieldPermissionValue = "FORM_FILED_EDIT" | "FORM_FILED_VIEW" | "FORM_FILED_HIDDEN"; interface DataPermissionRuleDto { field: string; componentType?: string; op: string; value: unknown; } interface DataPermissionConditionDto { logic: "AND" | "OR"; rules?: DataPermissionRuleDto[]; conditions?: DataPermissionConditionDto[]; } interface DataPermissionDto { type: "condition" | "sql" | "scope_policy"; condition?: DataPermissionConditionDto; logic?: "AND" | "OR"; rules?: DataPermissionRuleDto[]; expression?: string; policyCode?: string; scopePolicyCode?: string; } type SearchLogic = "AND" | "OR"; type SearchOperator = "EQ" | "NEQ" | "LIKE" | "ILIKE" | "MATCH" | "CONTAINS" | "NOT_CONTAINS" | "IN" | "IS_NULL" | "IS_NOT_NULL" | "GT" | "GTE" | "GE" | "LT" | "LTE" | "LE" | "BETWEEN" | "EXISTS" | "NOT_EXISTS" | "PATH_EQ" | string; type SearchComponentName = "TextField" | "TextareaField" | "EditorField" | "SerialNumberField" | "NumberField" | "DateField" | "CascadeDateField" | "SelectField" | "RadioField" | "MultiSelectField" | "CheckboxField" | "CascadeSelectField" | "DepartmentSelectField" | "EmployeeSelectField" | "UserSelectField" | "JSONField" | "SubFormField" | string; type SearchSystemField = "createTime" | "modifiedTime" | "processInstanceId" | "processInstanceTitle" | "originator" | "originatorName" | "originatorCorp" | "created_at" | "updated_at" | "form_instance_id" | "instance_title" | "created_by" | "created_by_name" | "created_by_department_id"; type SearchFieldKey = SearchSystemField | string; type InstanceStatus = "pending" | "running" | "completed" | "terminated" | "waiting" | "withdrawn"; interface PageAppInfo { appType: string; tenantId: string; } interface PageRouteInfo { pathname: string; fullPath: string; params: Record; query: Record; hash: string; } interface PageDepartmentInfo { id?: string; name?: string; externalId?: string | null; } interface PageDepartmentRecord extends PageDepartmentInfo { id: string; parentId?: string | null; key?: string; title?: string; hasChildren?: boolean; isLeaf?: boolean; children?: PageDepartmentRecord[]; supervisorUserIds?: string[]; supervisors?: Array<{ id: string; name: string; }>; createdAt?: string | Date; updatedAt?: string | Date; [key: string]: unknown; } interface GetParentDepartmentsOptions { includeSelf?: boolean; } interface CurrentUserDepartmentParents { department: PageDepartmentInfo; parents: PageDepartmentRecord[]; } type PageUserType = "normal" | "guest"; interface PageUserInfo { id: string; username: string; name?: string; jobNumber?: string; phone?: string | null; email?: string | null; avatar?: string | null; departments?: PageDepartmentInfo[]; affiliatedDepartmentId?: string | null; affiliatedDepartment?: PageDepartmentInfo | null; tenantId: string; isGuest?: boolean; userType?: PageUserType; [key: string]: unknown; } interface AppFunctionOperatorInfo { userId?: string; username?: string; name?: string; jobNumber?: string; phone?: string | null; email?: string | null; tenantId?: string; roleCodes?: string[]; /** Platform identity codes maintained by organization sync. */ platformRoleCodes?: string[]; currentRoleCode?: string | null; currentRoleName?: string | null; hasFullAccess?: boolean; isPlatformAdmin?: boolean; isAppAdmin?: boolean; isGuest?: boolean; [key: string]: unknown; } interface PagePermissionInfo { canView: boolean; hasFullAccess: boolean; /** Platform identity codes are additive to app role codes. */ platformRoleCodes?: string[]; [key: string]: unknown; } interface AppFunctionPermissionContext { roleCodes?: string[]; platformRoleCodes?: string[]; currentRoleCode?: string | null; currentRoleName?: string | null; hasFullAccess?: boolean; isPlatformAdmin?: boolean; isAppAdmin?: boolean; [key: string]: unknown; } interface AppFunctionRuntimeContext { permissions?: AppFunctionPermissionContext; [key: string]: unknown; } /** Metadata-only declaration stored in an App Function resource manifest. */ interface AppFunctionSecretRef { name: string; required: boolean; } /** * Invocation-scoped secret resolver exposed only by trusted_node_v2. * Values are never part of a page SDK response, manifest, build artifact, or * source snapshot. */ interface AppFunctionSecrets { get(name: string): Promise; } interface AppFunctionAttachmentReference { id?: string; uid?: string; name?: string; originalName?: string; objectName?: string; bucketName?: string; storageCode?: string; storageScope?: "app" | "platform" | string; provider?: "platform" | "oss" | "builtin-oss" | "platform-oss" | string; uploadProvider?: string; contentType?: string; mimeType?: string; size?: number; [key: string]: unknown; } interface AppFunctionFileReadOptions { attachment: AppFunctionAttachmentReference | AppFunctionAttachmentReference[]; attachmentId?: string; index?: number; includeDataUri?: boolean; } interface AppFunctionFormFileReadOptions { formCode?: string; formUuid?: string; formInstId?: string; formInstanceId?: string; fieldId: string; attachmentId?: string; index?: number; includeDataUri?: boolean; } type AppFunctionFileReadInput = AppFunctionAttachmentReference | AppFunctionAttachmentReference[] | AppFunctionFileReadOptions | AppFunctionFormFileReadOptions; interface AppFunctionBase64File { base64: string; contentType: string; fileName: string; size: number; sha256: string; dataUri?: string; } /** * Reads an image through the server-side storage boundary. Direct attachment * references must come from the current formData context; reusable Functions * may instead identify the owning form record and field. */ interface AppFunctionFilesApi { readAsBase64(input: AppFunctionFileReadInput): Promise; } interface AppFunctionHttpRequest { url: string; method?: "GET" | "POST" | "PUT" | "PATCH" | "DELETE" | "HEAD"; params?: Record; data?: unknown; body?: unknown; headers?: Record; timeout?: number; } interface AppFunctionHttpResponse { data: T; status: number; statusText?: string; headers?: Record; } /** * Server-controlled public HTTPS bridge. It never forwards the platform * Runtime bearer token and rejects redirects and private/reserved targets. */ interface AppFunctionHttpApi { request(input: AppFunctionHttpRequest): Promise>; get(url: string, config?: Omit): Promise>; post(url: string, data?: unknown, config?: Omit): Promise>; put(url: string, data?: unknown, config?: Omit): Promise>; patch(url: string, data?: unknown, config?: Omit): Promise>; delete(url: string, config?: Omit): Promise>; } interface AppFunctionUtils { http: AppFunctionHttpApi; log?(message: unknown): void; info?(message: unknown): void; error?(message: unknown): void; parseJSON?(value: string): T; stringify?(value: unknown): string; now?(): number; today?(): Date; uuid?(): string; [key: string]: unknown; } /** Stable workspace shape for a Function that opts in to secret resolution. */ interface AppFunctionManifestV2 { code: string; name?: string; description?: string; secretRefs?: AppFunctionSecretRef[]; definitionJson: { kind?: "app_function"; version: "function_v2"; runtimeMode: "trusted_node"; runtimeContractVersion: "trusted_node_v2"; sourceType?: "file_snapshot"; sourceFile?: Record; [key: string]: unknown; }; [key: string]: unknown; } interface AppFunctionFormQueryParams { formCode: string; conditions?: Record; filters?: SearchExpression | Record; search?: SearchExpression | Record; currentPage?: number; pageSize?: number; order?: SearchSortItem | SearchSortItem[]; [key: string]: unknown; } interface AppFunctionFormGetByIdParams { formCode: string; formInstId?: string; formInstanceId?: string; [key: string]: unknown; } interface AppFunctionFormDeleteResult { success: boolean; code: number; [key: string]: unknown; } interface AppFunctionFormWriteParams { formCode: string; formInstId?: string; formInstanceId?: string; data?: Record; expectedStateVersion?: number; expectedRevision?: number; [key: string]: unknown; } interface AppFunctionFormApi { queryOne>(params: AppFunctionFormQueryParams): Promise; queryMany>(params: AppFunctionFormQueryParams): Promise | TRecord[]>; getById>(params: AppFunctionFormGetByIdParams): Promise; createOne>(params: AppFunctionFormWriteParams): Promise; updateOne>(params: AppFunctionFormWriteParams): Promise; updateById>(params: AppFunctionFormWriteParams): Promise; deleteById(params: AppFunctionFormGetByIdParams): Promise; [key: string]: unknown; } interface AppFunctionDataViewApi { query>(viewCode: string, params?: DataViewQueryParams): Promise>; stats>(viewCode: string, params?: DataViewStatsParams): Promise; [key: string]: unknown; } interface AppFunctionConnectorApi { invoke(callName: string, params?: ConnectorInvokeParams): Promise>; [key: string]: unknown; } interface AppFunctionNotificationApi { sendByType?(params: SendNotificationByTypeParams): Promise; batchSendByType?(params: BatchSendNotificationByTypeParams): Promise; previewDingTalk?(params: PreviewDingTalkNotificationParams): Promise; sendDingTalk?(params: SendNotificationByTypeParams): Promise; updateDingTalkCard?(params: UpdateDingTalkCardParams): Promise; capabilities?(): Promise; [key: string]: unknown; } interface OrganizationCapabilities { appType: string; permissionCode: "app:organization:manage" | string; readPermissionCode: "app:organization:read" | string; managePermissionCode: "app:organization:manage" | string; canRead: boolean; canManage: boolean; actor?: Record; runtimeServicePrincipalRequiresAuditActor: boolean; supportedOperations: string[]; [key: string]: unknown; } interface CreateOrganizationDepartmentParams { appType?: string; name: string; parentId?: string | null; externalId?: string | null; corpId?: string | null; visibilityScope?: string; visibilityCustomDepartmentIds?: string[]; memberViewScope?: string | null; memberViewCustomDepartmentIds?: string[]; supervisorUserIds?: string[]; [key: string]: unknown; } interface UpdateOrganizationDepartmentParams extends Partial> { appType?: string; name?: string; } interface CreateOrganizationAccountParams { appType?: string; id?: string; username?: string; password?: string; name?: string; phone?: string; email?: string; jobNumber?: string; avatar?: string; departmentIds?: string[]; affiliatedDepartmentId?: string | null; validFrom?: string | Date | null; validTo?: string | Date | null; [key: string]: unknown; } interface UpdateOrganizationAccountParams { appType?: string; id?: string; username?: string; name?: string; phone?: string; email?: string; jobNumber?: string; avatar?: string; departmentIds?: string[]; affiliatedDepartmentId?: string | null; validFrom?: string | Date | null; validTo?: string | Date | null; [key: string]: unknown; } interface OrganizationAccountListParams { appType?: string; ids?: string[] | string; departmentIds?: string[] | string; keyword?: string; name?: string; username?: string; phone?: string; email?: string; jobNumber?: string; page?: number; pageSize?: number; } interface ResetOrganizationAccountPasswordParams { appType?: string; newPassword: string; } interface ChangeOrganizationAccountPasswordParams { appType?: string; oldPassword: string; newPassword: string; } interface OrganizationListResult { items: TItem[]; total: number; page: number; pageSize: number; } interface SchoolContactPerson { userId: string; dingtalkUserId: string | null; name: string; mobile: string | null; } interface SchoolContactClass { id: string; dingtalkClassId: string; name: string; campusName: string | null; periodName: string | null; gradeName: string | null; /** Current head teachers for this class. Populated by teachers.list. */ headTeachers?: SchoolContactPerson[]; } interface SchoolContactTeacher extends SchoolContactPerson { /** Classes currently managed by this teacher as head teacher. */ managedClasses: SchoolContactClass[]; } interface SchoolContactSyncState { enabled: boolean; state: "current" | "not_synced" | "disabled"; lastSuccessfulSyncAt: string | Date | null; } interface SchoolContactRelationRecord { relationId: string; relationCode: string | null; relationName: string | null; guardian: SchoolContactPerson; student: SchoolContactPerson; class: SchoolContactClass; syncedAt: string | Date; syncState: SchoolContactSyncState["state"]; } interface SchoolContactRelationListResult extends OrganizationListResult { sync: SchoolContactSyncState; } interface SchoolContactRelationListParams { appType?: string; userId?: string; guardianUserId?: string; studentUserId?: string; dingtalkUserId?: string; mobile?: string; name?: string; classId?: string; role?: "guardian" | "student"; relationCode?: string; page?: number; pageSize?: number; } interface SchoolContactTeacherMembershipRecord { membershipId: string; teacher: SchoolContactTeacher; class: SchoolContactClass; isHeadTeacher: boolean; source: "dingtalk_school_contact" | "manual"; syncedAt: string | Date; syncState: SchoolContactSyncState["state"]; } interface SchoolContactTeacherListResult extends OrganizationListResult { sync: SchoolContactSyncState; } interface SchoolContactTeacherListParams { appType?: string; userId?: string; dingtalkUserId?: string; mobile?: string; name?: string; classId?: string; isHeadTeacher?: boolean; page?: number; pageSize?: number; } interface AppFunctionOrganizationApi { capabilities?(): Promise; departments: { list(): Promise; get(departmentId: string, params?: { appType?: string; }): Promise; create(params: CreateOrganizationDepartmentParams): Promise; update(departmentId: string, params: UpdateOrganizationDepartmentParams): Promise; }; accounts: { list>(params?: OrganizationAccountListParams): Promise; get(userId: string, params?: { appType?: string; }): Promise; create(params: CreateOrganizationAccountParams): Promise; update(userId: string, params: UpdateOrganizationAccountParams): Promise; resetPassword(userId: string, params: ResetOrganizationAccountPasswordParams): Promise; changeMyPassword(params: ChangeOrganizationAccountPasswordParams): Promise; }; schoolContact: { relations: { list(params?: SchoolContactRelationListParams): Promise; }; teachers: { list(params?: SchoolContactTeacherListParams): Promise; }; children: { list(guardianUserId: string, params?: Pick): Promise; }; guardians: { list(studentUserId: string, params?: Pick): Promise; }; myFamily: { get(params?: Pick): Promise; }; }; [key: string]: unknown; } interface AppFunctionProcessStartResult { success: boolean; formInstanceId?: string; formInstId?: string; processInstanceId: string; [key: string]: unknown; } interface AppFunctionProcessTaskResult { taskId: string; resubmittedBy?: string; newAssignee?: string; transferredBy?: string; [key: string]: unknown; } interface AppFunctionProcessWithdrawResult { instanceId: string; status: string; cancelledTaskIds: string[]; [key: string]: unknown; } /** * Trusted backend workflow bridge for App Functions. * * The platform binds every call to the current app, the Function's declared * form resources, and the real runtime operator. Returned values are already * unwrapped from the HTTP response envelope used by PageSdk. */ interface AppFunctionProcessApi { startFromExistingInstance(params: WorkflowStartFromExistingInstanceParams): Promise; resolveCapabilities(params: ResolveProcessCapabilitiesParams): Promise; resubmitTask(params: WorkflowResubmitParams): Promise; withdraw(params: WorkflowWithdrawParams): Promise; transferTask(params: WorkflowTransferParams): Promise; [key: string]: unknown; } interface AppFunctionPlatformApiRequest { path: string; method?: "GET" | "POST" | "PUT" | "PATCH" | "DELETE"; params?: Record; data?: unknown; body?: unknown; headers?: Record; timeout?: number; } interface AppFunctionPlatformApiResponse { data: T; status: number; statusText?: string; headers?: Record; } /** * Same-origin platform bridge. The host injects a runtime service token and * the real operator as audit evidence; application code must never supply * either credential itself. */ interface AppFunctionPlatformHttpApi { request(input: AppFunctionPlatformApiRequest): Promise>; get(path: string, config?: Omit): Promise>; post(path: string, data?: unknown, config?: Omit): Promise>; put(path: string, data?: unknown, config?: Omit): Promise>; patch(path: string, data?: unknown, config?: Omit): Promise>; delete(path: string, config?: Omit): Promise>; } interface AppFunctionRoleListParams { name?: string; code?: string; page?: number; limit?: number; pageSize?: number; } interface AppFunctionRoleUsersParams { page?: number; limit?: number; pageSize?: number; keyword?: string; } interface AppFunctionRoleMemberMutationResult { userId: string; username?: string; name?: string; reason?: string; } interface AppFunctionRoleBatchAddResult { role: Pick; results: { success: AppFunctionRoleMemberMutationResult[]; failed: AppFunctionRoleMemberMutationResult[]; total: number; }; } /** * Current-application role bridge for trusted App Functions. * * The runtime fixes appType to ctx.app.appType, validates the real operator's * app:role:manage permission, and records the platform call in invocation logs. */ interface AppFunctionPlatformRolesApi { list(params?: AppFunctionRoleListParams): Promise>; findByCode(roleCode: string, params?: Omit): Promise; get(roleId: string): Promise; listUsers(roleId: string, params?: AppFunctionRoleUsersParams): Promise>; addUsers(roleId: string, userIds: string[]): Promise; removeUser(roleId: string, userId: string): Promise; } interface AppFunctionPlatformApi { api: AppFunctionPlatformHttpApi; roles: AppFunctionPlatformRolesApi; [key: string]: unknown; } interface AppFunctionContext { operator?: AppFunctionOperatorInfo; currentUser?: PageUserInfo | AppFunctionOperatorInfo; permissions?: AppFunctionPermissionContext; runtime?: AppFunctionRuntimeContext; secrets?: AppFunctionSecrets; files: AppFunctionFilesApi; utils?: AppFunctionUtils; resources?: Record; form: AppFunctionFormApi; dataView: AppFunctionDataViewApi; connector: AppFunctionConnectorApi; notification: AppFunctionNotificationApi; organization: AppFunctionOrganizationApi; process: AppFunctionProcessApi; platform: AppFunctionPlatformApi; methods?: Record unknown>; [key: string]: unknown; } /** trusted_node_v2 always supplies the scoped Secret resolver. */ interface AppFunctionContextV2 extends AppFunctionContext { secrets: AppFunctionSecrets; utils: AppFunctionUtils; } type TrustedNodeV2Context = AppFunctionContextV2; interface SearchSortItem { id: string; isAsc: "y" | "n"; } interface SearchRule { key: SearchFieldKey; componentName?: Exclude; operator?: Exclude; value?: unknown; type?: string; } interface SearchGroup { logic?: SearchLogic; rules?: Array; conditions?: SearchGroup[]; } interface SubFormRule { key: string; componentName: "SubFormField"; operator?: "EXISTS" | "NOT_EXISTS" | "IS_NULL" | "IS_NOT_NULL"; value?: SearchGroup; type?: string; } type SearchExpression = SearchRule | SubFormRule | Array | Array> | SearchGroup | Record; interface PageDataSourceDescriptor { key: string; type: string; formUuid?: string; fields?: string[]; permission?: "read" | "write" | string; defaultFilter?: SearchExpression | string; [key: string]: unknown; } type CustomPageEntryMode = "app-shell" | "plain-page"; interface CustomPageEntryConfig { mode?: CustomPageEntryMode | string; hidePlatformNav?: boolean; defaultRoute?: string; [key: string]: unknown; } interface PageInfo { id: string; code: string; name: string; type: string; rendererType: string; routeKey: string; legacyFormUuid?: string; status: string; props: Record; route: Record | object; entry?: CustomPageEntryConfig; dataSources: PageDataSourceDescriptor[]; capabilities: Record; version?: string; buildId?: string; [key: string]: unknown; } interface PageMessageApi { success(text: string): void; error(text: string): void; warning(text: string): void; info(text: string): void; loading(text: string): () => void; } interface PageModalApi { confirm(input: { title: string; content: string; }): Promise; } interface PageNavigationApi { /** * pageKey accepts legacy formUuid, routeKey, or pageCode. * Custom pages should prefer routeKey/pageCode over hard-coded legacy formUuid. */ pushPage(pageKey: string, query?: Record): void; replacePage(pageKey: string, query?: Record): void; pushRoute(route: string, query?: Record): void; replaceRoute(route: string, query?: Record): void; updateQuery(query: Record): void; setHash(hash: string): void; back(): void; } interface PageBridgeApi { invoke(method: string, payload?: unknown): Promise; subscribe?(event: string, listener: (payload: unknown) => void): () => void; } interface PageSdkMeta { packageName?: string; version?: string | null; supportedBridgeMethods?: string[]; } interface PageApiResponse { code: number | string; success: boolean; message?: string; formInstId?: string; formInstanceId?: string; processInstanceId?: string; serialNumber?: string; serialNumbers?: Record; result: TResult | null; data?: TRaw; raw?: unknown; } interface ApiEnvelope { code: number | string; success?: boolean; message?: string; data?: T; result?: T; error?: string; errorMessage?: string; } interface FormInstanceIdentifierResult { formInstId: string; formInstanceId: string; processInstanceId?: string; serialNumber?: string; serialNumbers?: Record; instanceId?: string; result?: string; success?: boolean; code?: number | string; [key: string]: unknown; } interface FormCreateResult extends FormInstanceIdentifierResult { } interface FormUpdateResult { formInstId: string; formInstanceId: string; result?: string; success?: boolean; code?: number | string; [key: string]: unknown; } interface FormDetailResult> { formInstId?: string; formInstanceId?: string; data: TData; [key: string]: unknown; } interface FieldOptionValue { label: string; value: string; [key: string]: unknown; } type FormFieldValue = string | number | boolean | null | FieldOptionValue | FieldOptionValue[] | Record | Array>; interface PageBinaryResponse { blob: Blob; fileName?: string; contentType?: string; headers?: Record; raw?: unknown; } interface PageListResult { currentPage: number; data: TItem[]; totalCount: number; } interface PageOffsetListResult { items: TItem[]; total: number; page: number; limit: number; } interface PageContext { protocolVersion: string; app: PageAppInfo; page: PageInfo; user: PageUserInfo; route: PageRouteInfo; env: Record; permissions: PagePermissionInfo; capabilities: string[]; ui: { message: PageMessageApi; modal: PageModalApi; }; navigation: PageNavigationApi; bridge: PageBridgeApi; sdk?: PageSdkMeta; } interface PageRequestOptions, TBody = unknown> { path: string; method: PageHttpMethod; query?: TQuery; body?: TBody; headers?: Record; cache?: PageRequestCache; dedupe?: boolean; trace?: boolean; traceLabel?: string; } interface PageTransportRequestPayload { path: string; method: PageHttpMethod; query?: string; body?: TBody; headers?: Record; cache?: PageRequestCache; } interface PageTransportDownloadPayload { path: string; method: PageHttpMethod; query?: string; body?: TBody; headers?: Record; } interface PageSdkError extends Error { method?: string; path?: string; response?: PageApiResponse; raw?: unknown; } interface FormGetDetailParams { formUuid: string; formInstId?: string; formInstanceId?: string; appType?: string; } interface FormCreateParams { formUuid: string; appType?: string; data: Record; saveAsDraft?: boolean; draft?: boolean; startProcess?: boolean; autoStartProcess?: boolean; processStartMode?: "auto" | "manual" | "draft" | "delayed" | "none" | string; /** * Legacy compatibility only. New code should not infer a created row by * submitted field values; the save API returns identifiers, not full row data. */ lookupAfterCreate?: boolean | "legacy"; lookupFields?: string[]; } interface FormUpdateParams { formUuid: string; appType?: string; formInstId?: string; formInstanceId?: string; data?: Record; updateFormDataJson?: string; } interface FormRemoveParams { formUuid: string; appType?: string; formInstId?: string; formInstanceId?: string; } interface FormChangeRecordParams { formUuid: string; appType?: string; formInstId?: string; formInstanceId?: string; page?: number; pageSize?: number; } interface FormSearchParams { formUuid: string; appType?: string; search?: SearchExpression; currentPage?: number; pageSize?: number; originatorId?: string; createFrom?: string; createTo?: string; modifiedFrom?: string; modifiedTo?: string; dynamicOrder?: string | SearchSortItem; instanceStatus?: InstanceStatus; } interface FormAdvancedSearchParams { formUuid: string; appType?: string; filters?: SearchExpression; conditionType?: SearchLogic; searchKeyWord?: string; currentPage?: number; pageSize?: number; order?: SearchSortItem | SearchSortItem[]; instanceStatus?: InstanceStatus; } interface DataViewQueryParams { appType?: string; fields?: string[]; filters?: SearchExpression | string; conditionType?: SearchLogic; searchKeyWord?: string; currentPage?: number; pageSize?: number; order?: SearchSortItem | SearchSortItem[]; } interface DataViewStatsParams extends DataViewQueryParams { having?: SearchExpression | string; } interface DataViewQueryResult extends PageListResult { pageSize: number; storageMode?: "materialized" | "live"; lastRefreshedAt?: string | null; } interface FunctionInvokeParams { appType?: string; input?: TInput; } interface FunctionInvokeResult { invocationId: string; functionCode: string; result: TResult; output?: TResult; variables?: Record; logs?: unknown[]; duration?: number; } interface FormExportParams extends FormAdvancedSearchParams { exportAll?: "y" | "n"; embedImages?: "y" | "n"; exportFields?: string[]; } interface FormImportParams { formUuid: string; appType?: string; fileBase64: string; fileName?: string; } interface ImportExportRecordQuery { formUuid: string; appType?: string; currentPage?: number; pageSize?: number; } interface ImportExportRecordDownloadParams { appType?: string; recordId: string; } interface DataManagementFilterState { filters?: SearchExpression; conditionType?: SearchLogic; searchKeyWord?: string; } interface PageDataManagementConfig { sort?: SearchSortItem[]; showFields?: string[]; filter?: DataManagementFilterState; widths?: Record; lockFieldIds?: string[]; lineHeight?: number; [key: string]: unknown; } interface DataManagementConfigParams { formUuid: string; appType?: string; } interface SaveDataManagementConfigParams extends DataManagementConfigParams { config: PageDataManagementConfig; expectedRevision?: number; } interface PageUserRecord extends PageUserInfo { phone?: string | null; email?: string | null; avatar?: string | null; status?: string; createdAt?: string; updatedAt?: string; validFrom?: string | null; validTo?: string | null; } interface CreateUserParams { id?: string; username?: string; password?: string; phone?: string; email?: string; name: string; avatar?: string; jobNumber?: string; departmentIds?: string[]; affiliatedDepartmentId?: string | null; validFrom?: string | Date | null; validTo?: string | Date | null; } interface UpdateUserParams extends Partial { id: string; } interface UserListParams { ids?: string[] | string; departmentIds?: string[] | string; keyword?: string; name?: string; username?: string; phone?: string; email?: string; jobNumber?: string; page?: number; pageSize?: number; } interface ValidateUserParams { username: string; password: string; } interface PageRoleRecord { id: string; name: string; code: string; scope: PageScope; appType?: string; description?: string; createdAt?: string; updatedAt?: string; } interface CreateRoleParams { name: string; code: string; scope: PageScope; appType?: string; description?: string; } type UpdateRoleParams = Partial; interface RoleListParams { appType?: string; name?: string; code?: string; page?: number; limit?: number; scope?: PageScope; } interface RoleUsersParams { page?: number; limit?: number; keyword?: string; } interface AssignRolesParams { userId: string; roleIds: string[]; } interface ChangeUserRoleParams { userId: string; roleId: string; } interface BatchAddUsersToRoleParams { roleId: string; userIds: string[]; } interface GetUserRolesParams { scope?: PageScope; appType?: string; } interface SwitchPlatformRoleParams { roleId: string; } interface SwitchAppRoleParams { roleId: string; appType?: string; } interface PageApiPermissionRecord { id: string; name: string; code: string; scope: PageScope; method?: "GET" | "POST" | "PUT" | "DELETE" | "ANY"; path?: string; appType?: string; description?: string; parentId?: string; children?: PageApiPermissionRecord[]; } interface PageUiPermissionRecord { id: string; name: string; code: string; type: PageUiPermissionType; scope: PageScope; appType?: string; description?: string; parentId?: string; children?: PageUiPermissionRecord[]; } interface CreateApiPermissionParams { name: string; code: string; scope: PageScope; method?: "GET" | "POST" | "PUT" | "DELETE" | "ANY"; path: string; description?: string; parentId?: string; appType?: string; } type UpdateApiPermissionParams = Partial; interface ApiPermissionListParams { code?: string; scope?: PageScope; appType?: string; page?: number; limit?: number; } interface AssignPermissionsParams { roleId: string; permissionIds: string[]; } interface CreateUiPermissionParams { name: string; code: string; type: PageUiPermissionType; scope: PageScope; appType?: string; description?: string; parentId?: string; } type UpdateUiPermissionParams = Partial; interface UiPermissionListParams extends ApiPermissionListParams { type?: PageUiPermissionType; } interface FormPermissionGroup { id: string; appType: string; formUuid: string; name: string; type: "submit" | "view"; roles: string[]; platformRoleCodes?: string[]; dataScope?: "all" | "self"; operations?: string[]; actions?: string[]; fieldPermissions?: FieldPermissionDto[]; fieldAccessPolicy?: FieldAccessPolicyDto | null; dataPermission?: DataPermissionDto; createdAt?: string; updatedAt?: string; } type ViewOperationPermission = "view" | "create" | "edit" | "delete" | "export" | "import" | "change_records" | "workflow"; interface ViewPermissionSummary { fieldPermissions: Record; operations: ViewOperationPermission[]; actions?: ViewOperationPermission[]; can?: Record; fieldAccessPolicy?: FieldAccessPolicyDto | null; hasFullAccess?: boolean; resourceType?: "form" | string; matchedGroupCodes?: string[]; } interface CreateFormPermissionGroupDto { appType: string; formUuid: string; name: string; type: "submit" | "view"; roles: string[]; platformRoleCodes?: string[]; dataScope?: "all" | "self"; operations?: string[]; actions?: string[]; fieldPermissions?: FieldPermissionDto[]; fieldAccessPolicy?: FieldAccessPolicyDto | null; dataPermission?: DataPermissionDto; } interface UpdateFormPermissionGroupDto { appType?: string; formUuid?: string; name?: string; type?: "submit" | "view"; roles?: string[]; platformRoleCodes?: string[]; dataScope?: "all" | "self"; operations?: string[]; fieldPermissions?: FieldPermissionDto[]; fieldAccessPolicy?: FieldAccessPolicyDto | null; dataPermission?: DataPermissionDto; } interface QueryFormPermissionGroupDto { appType?: string; formUuid?: string; type?: "submit" | "view"; name?: string; page?: number; limit?: number; } interface PagePermissionGroup { id: string; appType: string; name: string; roles: string[]; platformRoleCodes?: string[]; menuFormUuids: string[]; createdAt?: string; updatedAt?: string; } interface CreatePagePermissionGroupDto { appType: string; name: string; roles: string[]; platformRoleCodes?: string[]; menuFormUuids: string[]; } interface UpdatePagePermissionGroupDto { appType?: string; name?: string; roles?: string[]; platformRoleCodes?: string[]; menuFormUuids?: string[]; } interface QueryPagePermissionGroupDto { appType?: string; name?: string; page?: number; limit?: number; } interface UserMenuPermissionsResponse { appType: string; menuFormUuids: string[]; hasFullAccess: boolean; platformRoleCodes?: string[]; } type NotificationChannel = "inapp" | "email" | "dingding" | "wechat" | "thirdparty_todo"; interface SendNotificationByTypeParams { notificationType: string; recipientId: string; appType?: string; formUuid?: string; payload: Record; channels?: NotificationChannel[]; } interface BatchSendNotificationByTypeParams { notificationType: string; appType?: string; formUuid?: string; recipients: Array<{ recipientId: string; payload: Record; channels?: NotificationChannel[]; }>; } interface NotificationChannelConfig { enabled?: boolean; title?: string; content?: string; config?: Record; [key: string]: unknown; } interface NotificationChannelsConfig { inapp?: NotificationChannelConfig; email?: NotificationChannelConfig; dingding?: NotificationChannelConfig; wechat?: NotificationChannelConfig; thirdparty_todo?: NotificationChannelConfig; [key: string]: NotificationChannelConfig | undefined; } type NotificationConfigLevel = "platform" | "app" | "form"; interface NotificationTemplate { id?: string; code: string; name: string; content?: string; description?: string; level?: NotificationConfigLevel; appType?: string; formUuid?: string; priority?: number; enabled?: boolean; variables?: string[]; channelsConfig?: NotificationChannelsConfig; [key: string]: unknown; } interface NotificationTypeConfig { id?: string; notificationType: string; level?: NotificationConfigLevel; appType?: string; formUuid?: string; templateId?: string; template?: NotificationTemplate; enabled?: boolean; priority?: number; description?: string; [key: string]: unknown; } interface PreviewNotificationTemplateParams { appType?: string; templateId?: string; templateCode?: string; code?: string; level?: "app" | "form"; formUuid?: string; payload?: Record; } type DingTalkNotificationDeliveryMode = "card_preferred" | "card_only" | "work_notice_only"; type DingTalkNotificationCardMode = "standard" | "custom"; interface DingTalkNotificationCardField { fieldId: string; label: string; order?: number; required?: boolean; [key: string]: unknown; } interface DingTalkNotificationCardConfig { mode?: DingTalkNotificationCardMode; cardTemplateId?: string; dingTalkTemplateId?: string; title?: string; summary?: string; cardTitle?: string; cardSummary?: string; jumpUrl?: string; maxFields?: number; fieldConfigs?: DingTalkNotificationCardField[]; paramMap?: Record; [key: string]: unknown; } interface DingTalkNotificationChannelConfig { deliveryMode?: DingTalkNotificationDeliveryMode; fallbackToWorkNotice?: boolean; workNoticeContent?: string; cardTemplateId?: string; dingTalkTemplateId?: string; cardTitle?: string; cardSummary?: string; jumpUrl?: string; maxFields?: number; fieldConfigs?: DingTalkNotificationCardField[]; card?: DingTalkNotificationCardConfig; [key: string]: unknown; } interface PreviewDingTalkNotificationParams { appType?: string; notificationType?: string; templateId?: string; templateCode?: string; code?: string; level?: "app" | "form"; formUuid?: string; payload?: Record; config?: DingTalkNotificationChannelConfig; channelsConfig?: NotificationChannelsConfig; content?: string; } interface DingTalkNotificationCardPreview { deliveryMode: DingTalkNotificationDeliveryMode; fallbackToWorkNotice: boolean; cardMode: DingTalkNotificationCardMode; resolvedCardTemplateId?: string; cardParamMap?: Record; outTrackId?: string; workNoticeContent: string; missingVariables: string[]; warnings: string[]; [key: string]: unknown; } interface DingTalkNotificationPreviewResult { cardPreview: DingTalkNotificationCardPreview; } interface DingTalkNotificationCapabilities { enabled: boolean; hasAppCredentials: boolean; hasAgentId: boolean; hasDefaultCardTemplateId: boolean; defaultCardTemplateId?: string; deliveryModes: DingTalkNotificationDeliveryMode[]; cardModes: DingTalkNotificationCardMode[]; standardVariables: string[]; [key: string]: unknown; } interface NotificationTemplatePreview { defaultContent?: string; channelPreviews?: Record; enabledChannels?: Array; dingding?: DingTalkNotificationPreviewResult; [key: string]: unknown; } interface FindNotificationConfigParams { appType?: string; formUuid?: string; } interface NotificationMessageRecord { id?: string; messageId?: string; channel?: NotificationChannel | string; status?: "pending" | "sent" | "failed" | string; recipientId?: string; deliveryMeta?: Record; [key: string]: unknown; } interface SendNotificationResult { messages: NotificationMessageRecord[]; } interface UpdateDingTalkCardParams { appType?: string; messageId: string; cardParamMap: Record; } interface UpdateDingTalkCardResult { success: boolean; messageId: string; outTrackId?: string; cardParamMap?: Record; error?: string; } type NotificationInboxReadStatus = "all" | "read" | "unread"; interface ListNotificationInboxParams { appType?: string; page?: number; limit?: number; readStatus?: NotificationInboxReadStatus; keyword?: string; templateCode?: string; } interface NotificationInboxMessage { id: string; messageId: string; templateCode?: string; templateName?: string; recipientId: string; channel: NotificationChannel | string; status: string; title: string; content: string; actionUrl?: string; businessType?: string; businessId?: string; readAt?: string | Date; unread: boolean; sentAt?: string | Date; createdAt: string | Date; payload?: Record; [key: string]: unknown; } interface NotificationInboxListResult { items: NotificationInboxMessage[]; total: number; unreadCount: number; page: number; limit: number; totalPages: number; } interface NotificationUnreadCountResult { unreadCount: number; } interface MarkAllNotificationReadResult { updatedCount: number; readAt: string | Date; } type WorkCenterBoxType = "todo" | "done" | "cc" | "initiated"; interface ListWorkCenterItemsParams { appType?: string; boxType: WorkCenterBoxType; page?: number; limit?: number; keyword?: string; status?: string; result?: string; sourceType?: string; formUuid?: string; startAt?: string | Date; endAt?: string | Date; } interface WorkCenterStatsParams { appType?: string; formUuid?: string; startAt?: string | Date; endAt?: string | Date; } interface WorkCenterItem { id: string; userId?: string; boxType: WorkCenterBoxType | string; itemType?: string; sourceType?: string; sourceId?: string; instanceId?: string; formInstanceId?: string; taskId?: string; title: string; summary?: string; starter?: { id?: string; name?: string; departmentName?: string; }; appType?: string; appName?: string; formUuid?: string; formName?: string; startedAt?: string | Date; arrivedAt?: string | Date; completedAt?: string | Date; status?: string; result?: string; nodeName?: string; nodeId?: string; actionUrl?: string; payloadSnapshot?: Record | null; [key: string]: unknown; } interface WorkCenterListResult { items: T[]; total: number; pagination: { page: number; limit: number; total: number; totalPages: number; }; } interface WorkCenterGroupedStat { appType?: string; appName?: string; formUuid?: string; formName?: string; todo: number; done: number; cc: number; initiated: number; [key: string]: unknown; } interface WorkCenterStats { todo: number; done: number; cc: number; initiated: number; groupedStats?: { appStats?: WorkCenterGroupedStat[]; formStats?: WorkCenterGroupedStat[]; }; } type LoginLogStatus = "success" | "failure"; interface LoginLogRecord { id: string; tenantId: string; userId?: string | null; username?: string | null; name?: string | null; jobNumber?: string | null; userType?: string | null; sourceAppType?: string | null; source: string; method: string; status: LoginLogStatus; failureCode?: string | null; failureReason?: string | null; ipAddress?: string | null; userAgent?: string | null; clientFingerprintHash?: string | null; requestId?: string | null; metadata?: Record; createdAt: string | Date; [key: string]: unknown; } interface LoginLogListParams { appType?: string; page?: number; limit?: number; status?: LoginLogStatus; method?: string; source?: string; sourceAppType?: string; userId?: string; keyword?: string; startAt?: string | Date; endAt?: string | Date; includeSensitive?: boolean; } interface LoginLogStatsParams { appType?: string; startAt?: string | Date; endAt?: string | Date; } interface LoginLogGetParams { appType?: string; includeSensitive?: boolean; } interface LoginLogStats { total: number; success: number; failure: number; byMethod: Array<{ method: string; status: LoginLogStatus; count: number; }>; } type ProcessApproveAction = "approved" | "rejected" | "returned"; interface GetProcessInstanceParams { appType?: string; instanceId: string; } interface TerminateProcessInstanceParams { appType?: string; processInstanceId: string; reason?: string; } interface ApproveTaskParams { instanceId: string; action: ProcessApproveAction; comments?: string; formUuid: string; appType?: string; updateFormDataJson?: string; } interface TriggerCallbackTaskParams { appType?: string; taskId: string; payload?: unknown; } type WorkflowCapabilityActionKey = "startProcess" | "approve" | "reject" | "transfer" | "return" | "save" | "withdraw" | "resubmit" | "callback" | "retryException" | "adminTransfer"; interface ResolveProcessCapabilitiesParams { appType?: string; formUuid?: string; formInstId?: string; formInstanceId?: string; processInstanceId?: string; instanceId?: string; taskId?: string; } interface ProcessCapabilityOperation { key: WorkflowCapabilityActionKey; label: string; visible: boolean; enabled: boolean; disabledReason?: string; taskId?: string; instanceId?: string; formInstanceId?: string; nodeId?: string; nodeType?: string; sourceAction?: string; paramsSchema?: Record; uiSchema?: Record; refreshHints?: string[]; returnPolicy?: Record | null; returnableNodes?: Array>; [key: string]: unknown; } interface ProcessCapabilities { instance?: Record; currentTask?: Record | null; pendingTasks?: Array>; permissions?: Record; operations: ProcessCapabilityOperation[]; timeline?: Array>; protocolVersion?: string; [key: string]: unknown; } interface ProcessInstanceLookupParams { appType?: string; formInstId?: string; formInstanceId?: string; instanceId?: string; } interface WorkflowApproveParams { instanceId: string; action?: "approved" | "rejected"; comments?: string; formUuid?: string; appType?: string; updateFormDataJson?: string; } interface WorkflowStartFromExistingInstanceParams { formUuid: string; appType?: string; formInstId?: string; formInstanceId?: string; updateFormDataJson?: string; data?: Record; submissionDepartmentId?: string; selectedApprovers?: Record; initiatorSelectedApprovers?: Record; } interface WorkflowTransferParams { taskId: string; newAssignee: string; reason?: string; } interface WorkflowReturnParams { taskId: string; targetNodeId: string; reason?: string; } interface WorkflowWithdrawParams { instanceId: string; reason?: string; } interface WorkflowSaveTaskParams { instanceId: string; formUuid: string; appType?: string; updateFormDataJson: string; comments?: string; } interface WorkflowResubmitParams { taskId: string; formUuid: string; appType?: string; updateFormDataJson: string; comments?: string; selectedApprovers?: Record; initiatorSelectedApprovers?: Record; } interface WorkflowPreviewParams { formUuid: string; appType?: string; data: Record; submissionDepartmentId?: string; selectedApprovers?: Record; initiatorSelectedApprovers?: Record; } interface WorkflowDefinitionByFormParams { formUuid: string; appType?: string; id?: string; } interface WorkflowInitiatorSelectRequirementsParams { formUuid: string; appType?: string; data: Record; submissionDepartmentId?: string; } interface WorkflowResubmitInitiatorSelectRequirementsParams extends WorkflowInitiatorSelectRequirementsParams { taskId: string; } interface WorkflowInitiatorSelectCandidatesParams { formUuid: string; appType?: string; nodeId: string; page?: number; pageSize?: number; keyword?: string; departmentId?: string; } interface WorkflowTaskParams { taskId: string; } type ConnectorRequestBodyType = "json" | "form-data" | "x-www-form-urlencoded" | "text" | "raw"; type ConnectorResponseType = "json" | "text" | "binary"; interface ConnectorInvokeParams { appType?: string; connector: string; api: string; pathParams?: Record; query?: Record; body?: TBody; headers?: Record; requestBodyType?: ConnectorRequestBodyType; responseType?: ConnectorResponseType; } interface ConnectorInvokeResult { status: number; duration: number; data: TResult; headers?: Record; contentType?: string; encoding?: "base64"; } interface ConnectorCallParams extends Omit, "connector" | "api"> { } interface AuthLogoutRedirectOptions { loginUrl?: string; callbackUrl?: string; callbackParamName?: string; replace?: boolean; continueOnLogoutError?: boolean; fallback?: "reload" | "none"; redirect?: (url: string) => void; } type FileAccessTicketPurpose = "preview" | "download" | "onlyoffice" | string; /** @deprecated Use FileAccessTicketPurpose. */ type FileAccessTicketAction = FileAccessTicketPurpose; interface CreateFileAccessTicketOptions { appType?: string; } interface FileAccessTicketResult { ticket: string; purpose?: FileAccessTicketPurpose; /** @deprecated Compatibility with older platform responses. */ action?: FileAccessTicketAction; appType?: string; bucketName?: string; objectName?: string; fileName?: string; contentType?: string; mimeType?: string; previewUrl?: string; previewPageUrl?: string; downloadUrl?: string; officeTextPreviewUrl?: string; renderMode?: string; expiresAt?: string | Date; [key: string]: unknown; } type StructuredExportScope = "selected" | "all"; interface StructuredExportSourceDefinition { type: "form" | "dataView" | "function"; formUuid?: string; dataViewCode?: string; functionCode?: string; contract?: string; idField?: string; fields?: string[]; filterOperators?: Record; } type StructuredExportValueDefinition = { type: "field"; path: string; } | { type: "coalesce"; paths: string[]; } | { type: "template"; template: string; } | { type: "constant"; value: string | number | boolean | null; }; type StructuredExportFormatType = "text" | "number" | "currency" | "percent" | "date" | "datetime" | "boolean" | "enum" | "join" | "member" | "department" | "json" | "mask"; interface StructuredExportFormatDefinition { type: StructuredExportFormatType; pattern?: string; currency?: string; locale?: string; inputUnit?: "fraction" | "percent"; trueLabel?: string; falseLabel?: string; map?: Record; separator?: string; itemPath?: string; keepStart?: number; keepEnd?: number; maskChar?: string; } interface StructuredExportCellStyle { bold?: boolean; italic?: boolean; fontColor?: string; fillColor?: string; horizontal?: "left" | "center" | "right"; wrapText?: boolean; } interface StructuredExportStyleRule { when: { operator: "eq" | "ne" | "in" | "notIn" | "contains" | "gt" | "gte" | "lt" | "lte" | "empty" | "notEmpty"; value?: unknown; }; style: StructuredExportCellStyle; } interface StructuredExportColumnDefinition { key: string; title: string; value?: string | StructuredExportValueDefinition; valuePath?: string; dataIndex?: string | string[]; format?: StructuredExportFormatType | StructuredExportFormatDefinition; width?: number; emptyValue?: string | number | boolean | null; style?: StructuredExportCellStyle; styleRules?: StructuredExportStyleRule[]; } interface StructuredExportSheetDefinition { key?: string; name: string; source?: StructuredExportSourceDefinition; query?: object; scope?: StructuredExportScope; rowIds?: Array; columns: StructuredExportColumnDefinition[]; renderer?: { type?: "function"; functionCode: string; input?: Record; }; freezeHeader?: boolean; autoFilter?: boolean; } interface StructuredExportWorkbookDefinition { fileName?: string; creator?: string; maxRows?: number; sheets: StructuredExportSheetDefinition[]; } interface StructuredExportCreateParams { appType?: string; protocol?: "structured_export_v1"; exportKey: string; source?: StructuredExportSourceDefinition; query?: object; scope?: StructuredExportScope; rowIds?: Array; fieldKeys?: string[]; columns?: StructuredExportColumnDefinition[]; fileName?: string; workbook?: StructuredExportWorkbookDefinition; /** * An already-published App Function implementing * structured_export_provider_v1. No executable code is accepted here. */ definitionCode?: string; definitionInput?: Record; } interface StructuredExportGetParams { appType?: string; } type StructuredExportTaskStatus = "pending" | "running" | "completed" | "failed"; interface StructuredExportTask { id: string; protocol: "structured_export_v1"; status: StructuredExportTaskStatus; progress?: number; total?: number; processed?: number; message?: string; downloadUrl?: string; expiresAt?: string; } interface PageSdk { context: PageContext; request(options: PageRequestOptions): Promise>; download(options: PageRequestOptions): Promise; /** * Creates a shareable or new-window file URL. In-page React previews should use * AttachmentPreviewList, ImagePreviewGrid, or useFilePreview from runtime/react. */ createFileAccessTicket(bucketName: string, objectName: string, fileName?: string, purpose?: FileAccessTicketPurpose, options?: CreateFileAccessTicketOptions): Promise>; export: { create(params: StructuredExportCreateParams): Promise>; get(taskId: string, params?: StructuredExportGetParams): Promise>; }; transport: { request(options: PageRequestOptions): Promise>; download(options: PageRequestOptions): Promise; }; auth: { logout(): Promise>; logoutAndRedirect(options?: AuthLogoutRedirectOptions): Promise | null>; }; connector: { invoke(params: ConnectorInvokeParams): Promise>>; call(name: string, params?: ConnectorCallParams): Promise>>; download(params: ConnectorInvokeParams): Promise; }; form: { getDetail(params: FormGetDetailParams): Promise>; create(params: FormCreateParams): Promise>; update(params: FormUpdateParams): Promise>; remove(params: FormRemoveParams): Promise>; getChangeRecords(params: FormChangeRecordParams): Promise>; search(params: FormSearchParams): Promise>>; searchIds(params: FormSearchParams): Promise>>; advancedSearch(params: FormAdvancedSearchParams): Promise>>; advancedExport(params: FormExportParams): Promise; downloadImportTemplate(params: DataManagementConfigParams): Promise; importPreview(params: FormImportParams): Promise>; importExcel(params: FormImportParams): Promise>; getImportRecords(params: ImportExportRecordQuery): Promise>; getExportRecords(params: ImportExportRecordQuery): Promise>; downloadImportSource(params: ImportExportRecordDownloadParams): Promise; downloadImportFailed(params: ImportExportRecordDownloadParams): Promise; downloadExportRecord(params: ImportExportRecordDownloadParams): Promise; getDataManagementConfig(params: DataManagementConfigParams): Promise>; saveDataManagementConfig(params: SaveDataManagementConfigParams): Promise>; }; user: { create(params: CreateUserParams): Promise>; update(params: UpdateUserParams): Promise>; remove(id: string): Promise>; get(id?: string): Promise>; getCurrent(): Promise>; getByUsername(username: string): Promise>; list>(params?: UserListParams): Promise>; search(keyword?: string): Promise>; listAll(): Promise>; listByDepartment(departmentId: string): Promise>; validate(params: ValidateUserParams): Promise>; }; department: { getParentDepartments(departmentId: string, options?: GetParentDepartmentsOptions): Promise>; getCurrentUserParentDepartments(options?: GetParentDepartmentsOptions): Promise; }; organization: { capabilities(params?: { appType?: string; }): Promise>; departments: { list(params?: { appType?: string; }): Promise>; get(departmentId: string, params?: { appType?: string; }): Promise>; create(params: CreateOrganizationDepartmentParams): Promise>; update(departmentId: string, params: UpdateOrganizationDepartmentParams): Promise>; }; accounts: { list>(params?: OrganizationAccountListParams): Promise>; get(userId: string, params?: { appType?: string; }): Promise>; create(params: CreateOrganizationAccountParams): Promise>; update(userId: string, params: UpdateOrganizationAccountParams): Promise>; resetPassword(userId: string, params: ResetOrganizationAccountPasswordParams): Promise>; changeMyPassword(params: ChangeOrganizationAccountPasswordParams): Promise>; }; schoolContact: { relations: { list(params?: SchoolContactRelationListParams): Promise>; }; teachers: { list(params?: SchoolContactTeacherListParams): Promise>; }; children: { list(guardianUserId: string, params?: Pick): Promise>; }; guardians: { list(studentUserId: string, params?: Pick): Promise>; }; myFamily: { get(params?: Pick): Promise>; }; }; }; role: { create(params: CreateRoleParams): Promise>; update(id: string, params: UpdateRoleParams): Promise>; remove(id: string): Promise>; get(id: string): Promise>; list>(params?: RoleListParams): Promise>; listUsers>(roleId: string, params?: RoleUsersParams): Promise>; assignRoles(params: AssignRolesParams): Promise>; addUserRole(params: ChangeUserRoleParams): Promise>; removeUserRole(params: ChangeUserRoleParams): Promise>; batchAddUsers(params: BatchAddUsersToRoleParams): Promise>; getMyRoles(params?: GetUserRolesParams): Promise>; getCurrentRole(params?: GetUserRolesParams): Promise>; switchPlatformRole(params: SwitchPlatformRoleParams): Promise>; switchAppRole(params: SwitchAppRoleParams): Promise>; }; permission: { formGroup: { create(params: CreateFormPermissionGroupDto): Promise>; update(id: string, params: UpdateFormPermissionGroupDto): Promise>; remove(id: string): Promise>; get(id: string): Promise>; list>(params?: QueryFormPermissionGroupDto): Promise>; getViewFieldPermissions>(params: { appType?: string; formUuid: string; }): Promise>; getViewPermissionSummary(params: { appType?: string; formUuid: string; }): Promise>; }; pageGroup: { create(params: CreatePagePermissionGroupDto): Promise>; update(id: string, params: UpdatePagePermissionGroupDto): Promise>; remove(id: string): Promise>; get(id: string): Promise>; list>(params?: QueryPagePermissionGroupDto): Promise>; getUserMenuPermissions(appType?: string): Promise>; }; api: { create(params: CreateApiPermissionParams): Promise>; update(id: string, params: UpdateApiPermissionParams): Promise>; remove(id: string): Promise>; list>(params?: ApiPermissionListParams): Promise>; assign(params: AssignPermissionsParams): Promise>; getByRole(roleId: string): Promise>; getRolesByPermission(permissionId: string): Promise>; }; ui: { create(params: CreateUiPermissionParams): Promise>; update(id: string, params: UpdateUiPermissionParams): Promise>; remove(id: string): Promise>; list>(params?: UiPermissionListParams): Promise>; assign(params: AssignPermissionsParams): Promise>; getMyPlatform(): Promise>; getMyApp(appType?: string): Promise>; }; }; process: { getInstance(params: GetProcessInstanceParams): Promise>; terminateInstance(params: TerminateProcessInstanceParams): Promise>; approveTask(params: ApproveTaskParams): Promise>; triggerCallbackTask(params: TriggerCallbackTaskParams): Promise>; getBasic(params: ProcessInstanceLookupParams): Promise>; getProgress(params: ProcessInstanceLookupParams): Promise>; getPermission(params: ProcessInstanceLookupParams): Promise>; resolveCapabilities(params: ResolveProcessCapabilitiesParams): Promise>; startFromExistingInstance(params: WorkflowStartFromExistingInstanceParams): Promise>; approve(params: WorkflowApproveParams): Promise>; reject(params: WorkflowApproveParams): Promise>; transferTask(params: WorkflowTransferParams): Promise>; adminTransferTask(params: WorkflowTransferParams): Promise>; returnTask(params: WorkflowReturnParams): Promise>; withdraw(params: WorkflowWithdrawParams): Promise>; retryException(params: { instanceId: string; }): Promise>; saveTask(params: WorkflowSaveTaskParams): Promise>; resubmitTask(params: WorkflowResubmitParams): Promise>; getReturnableNodes(params: WorkflowTaskParams): Promise>; preview(params: WorkflowPreviewParams): Promise>; getDefinitionByForm(params: WorkflowDefinitionByFormParams): Promise>; getInitiatorSelectRequirements(params: WorkflowInitiatorSelectRequirementsParams): Promise>; getResubmitInitiatorSelectRequirements(params: WorkflowResubmitInitiatorSelectRequirementsParams): Promise>; getInitiatorSelectCandidates(params: WorkflowInitiatorSelectCandidatesParams): Promise>; triggerCallback(params: TriggerCallbackTaskParams): Promise>; }; dataSource: { run(name: string, params?: Record): Promise>; }; dataView: { query(code: string, params?: DataViewQueryParams): Promise>>; stats(code: string, params?: DataViewStatsParams): Promise>>; }; function: { invoke(code: string, params?: FunctionInvokeParams): Promise>>; }; notification: { sendByType(params: SendNotificationByTypeParams): Promise>; batchSendByType(params: BatchSendNotificationByTypeParams): Promise>; findConfig(notificationType: string, params?: FindNotificationConfigParams): Promise>; previewTemplate(params: PreviewNotificationTemplateParams): Promise>; previewDingTalk(params: PreviewDingTalkNotificationParams): Promise>; sendDingTalk(params: SendNotificationByTypeParams): Promise>; capabilities(params?: { appType?: string; }): Promise>; listInbox(params?: ListNotificationInboxParams): Promise>; getUnreadCount(params?: { appType?: string; }): Promise>; markRead(messageId: string, params?: { appType?: string; }): Promise>; markAllRead(params?: { appType?: string; }): Promise>; }; workCenter: { listItems(params: ListWorkCenterItemsParams): Promise>>; getStats(params?: WorkCenterStatsParams): Promise>; }; loginLog: { list>(params?: LoginLogListParams): Promise>; get(id: string, params?: LoginLogGetParams): Promise>; stats(params?: LoginLogStatsParams): Promise>; }; navigation: PageNavigationApi; ui: PageContext["ui"]; } declare const createPageSdk: (context: PageContext) => PageSdk; type AuthMethodType = "password" | "dingtalk" | "sso" | "guest" | "phone_code" | string; type DingTalkLoginFlow = "auto" | "jsapi" | "oauth"; interface AuthMethod { type: AuthMethodType; enabled?: boolean; label?: string; protocol?: string; flow?: DingTalkLoginFlow; [key: string]: unknown; } interface LoginMethodsResult { appType: string; configCode?: string; methods: AuthMethod[]; registration?: { mode?: string; [key: string]: unknown; }; security?: { hideFailureReason?: boolean; [key: string]: unknown; }; defaultRedirectUrl?: string; } interface AuthUser { id: string; username?: string; name?: string; phone?: string | null; email?: string | null; avatar?: string | null; jobNumber?: string | null; departments?: Array>; affiliatedDepartmentId?: string | null; affiliatedDepartment?: Record | null; [key: string]: unknown; } interface AuthTokenData { accessToken: string; refreshToken: string; token?: string; accessTokenExpiresAt?: number; refreshTokenExpiresAt?: number; user?: AuthUser; guestUser?: AuthUser; [key: string]: unknown; } interface PhoneCodeSendResult { challengeId: string; expiresAt?: string | Date; ttlSeconds?: number; message?: string; } interface AuthChallengePayload { id?: string; challengeId?: string; type?: string; question?: string; attemptsLeft?: number; expireAt?: number | string | Date; expiresAt?: number | string | Date; [key: string]: unknown; } interface AuthErrorExtra { reason?: string; guardCode?: string; challenge?: AuthChallengePayload; retryAfter?: number; retryAfterSeconds?: number; remainingAttempts?: number; lockUntil?: string | Date | null; [key: string]: unknown; } interface SsoLoginUrlResult { loginUrl: string; protocol?: string; } interface DingTalkOAuthStartInput { returnUrl?: string; } interface DingTalkOAuthStartResult { loginUrl: string; expiresIn: number; } interface AuthClientOptions { appType: string; servicePrefix?: string; fetchImpl?: typeof fetch; } interface PasswordLoginInput { username: string; password: string; clientFingerprint?: string; challengeId?: string; challengeAnswer?: string; } interface DingTalkLoginInput { code: string; corpId?: string; } interface GuestLoginInput { guestIdentifier?: string; domain?: string; ipAddress?: string; userAgent?: string; formUuid?: string; } interface PhoneCodeInput { phone: string; purpose?: "login" | "register" | string; } interface PhoneCodeLoginInput { phone: string; code: string; challengeId?: string; } interface PhoneCodeRegisterInput extends PhoneCodeLoginInput { name?: string; email?: string; } interface SsoLoginUrlInput { protocol?: string; redirectUri?: string; } interface RefreshInput { refreshToken?: string; } interface ResolveLoginUrlInput { callbackUrl?: string; callbackParamName?: string; loginUrl?: string; } interface AppAuthClient { appType: string; servicePrefix: string; getMethods: () => Promise; passwordLogin: (input: PasswordLoginInput) => Promise; dingtalkLogin: (input: DingTalkLoginInput) => Promise; getDingTalkOAuthUrl: (input?: DingTalkOAuthStartInput) => Promise; guestLogin: (input?: GuestLoginInput) => Promise; sendPhoneCode: (input: PhoneCodeInput) => Promise; phoneCodeLogin: (input: PhoneCodeLoginInput) => Promise; registerWithPhoneCode: (input: PhoneCodeRegisterInput) => Promise; getSsoLoginUrl: (input?: SsoLoginUrlInput) => Promise; refresh: (input?: RefreshInput) => Promise; logout: () => Promise; resolveLoginUrl: (input?: ResolveLoginUrlInput) => string; } interface AuthClientErrorOptions { status?: number; code?: number | string; payload?: unknown; extra?: AuthErrorExtra; } declare class AuthClientError extends Error { status?: number; code?: number | string; payload?: unknown; extra?: AuthErrorExtra; reason?: string; challenge?: AuthChallengePayload; retryAfter?: number; remainingAttempts?: number; lockUntil?: string | Date | null; constructor(message: string, options?: AuthClientErrorOptions); } declare const isAuthClientError: (error: unknown) => error is AuthClientError; declare const getAuthErrorExtra: (error: unknown) => AuthErrorExtra | undefined; declare const getAuthErrorReason: (error: unknown) => string | undefined; declare const isAuthChallengeRequired: (error: unknown) => boolean; declare const createAuthClient: ({ appType, servicePrefix, fetchImpl, }: AuthClientOptions) => AppAuthClient; type PublicStorageAction = "upload" | "preview" | "download"; interface PublicStorageGrant { bucketName: string; actions: PublicStorageAction[]; allowedMimeTypes?: string[]; allowedExtensions?: string[]; maxSizeBytes?: number; visibility?: "public" | "private"; pathPrefix?: string; } interface PublicFormGrant { code?: string; formUuid?: string; actions?: string[]; fields?: string[]; fieldIds?: string[]; upload?: Omit & { bucketName?: string; }; [key: string]: unknown; } interface PublicAccessClaim { type: "openxiangda_public"; appType: string; policyCode: string; routeCode?: string; pathPattern?: string; mode: "guest" | "ticket"; externalRoleCodes: string[]; grants: { forms?: Array; dataViews?: string[]; functions?: string[]; connectors?: string[]; storage?: PublicStorageGrant[]; }; issuedAt: string; expiresAt?: string | null; ticketId?: string | null; guestIdentifier?: string; } interface PublicAccessSessionInput { policyCode?: string; routeCode?: string; path?: string; ticket?: string; guestIdentifier?: string; domain?: string; ipAddress?: string; userAgent?: string; } interface PublicAccessSessionData extends AuthTokenData { publicAccess?: PublicAccessClaim | null; raw?: unknown; } interface PublicAccessClientOptions { appType: string; servicePrefix?: string; fetchImpl?: typeof fetch; } interface PublicAccessClient { appType: string; servicePrefix: string; startSession: (input?: PublicAccessSessionInput) => Promise; clearSession: (input?: PublicAccessSessionInput) => void; } declare class PublicAccessClientError extends Error { status?: number; code?: number | string; payload?: unknown; constructor(message: string, options?: { status?: number; code?: number | string; payload?: unknown; }); } declare const createPublicAccessClient: ({ appType, servicePrefix, fetchImpl, }: PublicAccessClientOptions) => PublicAccessClient; declare const createReactPage: (AppComponent: React__default.ComponentType) => { mount: (el: HTMLElement, context: PageContext) => void; update: (el: HTMLElement, context: PageContext) => void; unmount: () => void; }; interface PageProviderProps { context: PageContext; children: React__default.ReactNode; } declare const PageProvider: React__default.FC; interface CurrentUserState { user: PageUserInfo & { userType: PageUserType; isGuest: boolean; }; isGuest: boolean; isInternalUser: boolean; displayName: string; primaryDepartment: NonNullable[number] | null; affiliatedDepartment: PageUserInfo["affiliatedDepartment"] | null; } declare const useCurrentUser: () => CurrentUserState; interface UseDataSourceOptions = Record> { params?: TParams; immediate?: boolean; transform?: (result: TResult, response: PageApiResponse) => TData; } interface UseDataSourceResult = Record> { response: PageApiResponse | null; result: TResult | null; data: TData | null; loading: boolean; error: Error | null; refresh: (params?: TParams) => Promise | null>; run: (params?: TParams) => Promise | null>; setResponse: Dispatch | null>>; setResult: Dispatch>; setData: Dispatch>; } declare const useDataSource: = Record>(name: string, options?: UseDataSourceOptions) => UseDataSourceResult; interface UseFormViewPermissionsOptions { appType?: string; immediate?: boolean; } interface UseFormViewPermissionsState { summary: ViewPermissionSummary; response: PageApiResponse | null; loading: boolean; error: Error | null; refresh: () => Promise | null>; can: (operation: ViewOperationPermission) => boolean; getFieldPermission: (fieldName: string) => ViewFieldPermissionValue | null; } declare const useFormViewPermissions: (formUuid: string, options?: UseFormViewPermissionsOptions) => UseFormViewPermissionsState; declare const useMessage: () => PageMessageApi; declare const useModal: () => PageModalApi; declare const useNavigation: () => PageNavigationApi; declare const usePageContext: () => PageContext; declare const usePageProps: >() => T; declare const usePageRoute: () => PageRouteInfo; declare const usePageSdk: () => PageSdk; /** * Adapts PageSdk to the form component runtime, including binary Blob requests. * Use this instead of implementing FormEngineConfig.api.request in application code. */ declare const createPageFormRuntimeApi: (sdk: PageSdk, options?: { getAuthHeaders?: RuntimeAuthHeadersProvider; }) => FormRuntimeApi; /** Returns the current PageSdk as a complete FormRuntimeApi for FormProvider. */ declare const usePageFormRuntimeApi: () => FormRuntimeApi; interface UseFilePreviewOptions { /** Files from a form value, data view row, App Function, or another PageSdk result. */ items?: AttachmentItem[]; /** Defaults to the current PageSdk app context. */ appType?: string; bucketName?: string; enabled?: boolean; requireServerCapability?: boolean; } interface FilePreviewController { canPreview: (item: AttachmentItem) => boolean; getCapability: (item: AttachmentItem) => FilePreviewCapability | undefined; open: (item: AttachmentItem) => Promise; download: (item: AttachmentItem, prepared?: PreparedFilePreview | null) => Promise; isOpening: (item: AttachmentItem) => boolean; openingKey: string; host: React__default.ReactNode; } /** * Adds platform-authorized preview and download actions to standalone React SPA UI. * Render the returned `host` once so dialogs and image galleries can be mounted. */ declare const useFilePreview: ({ items, appType, bucketName, enabled, requireServerCapability, }: UseFilePreviewOptions) => FilePreviewController; interface AttachmentPreviewListProps { items?: AttachmentItem[]; appType?: string; bucketName?: string; showPreview?: boolean; showDownload?: boolean; showFileSize?: boolean; showFileTypeBadge?: boolean; emptyText?: React__default.ReactNode; className?: string; } /** Read-only attachment list with capability-aware preview and download actions. */ declare const AttachmentPreviewList: ({ items, appType, bucketName, showPreview, showDownload, showFileSize, showFileTypeBadge, emptyText, className, }: AttachmentPreviewListProps) => React__default.JSX.Element; interface ImagePreviewGridProps { items?: AttachmentItem[]; appType?: string; bucketName?: string; showPreview?: boolean; showDownload?: boolean; showFileName?: boolean; emptyText?: React__default.ReactNode; className?: string; } /** Read-only image grid that opens the current item in the shared preview gallery. */ declare const ImagePreviewGrid: ({ items, appType, bucketName, showPreview, showDownload, showFileName, emptyText, className, }: ImagePreviewGridProps) => React__default.JSX.Element; type FilePreviewItem = AttachmentItem; type SelectedApproverMap = Record; interface InitiatorApproverSelectorProps { open: boolean; formUuid: string; appType: string; api: FormRuntimeApi; requirements: InitiatorSelectRequirement[]; value?: SelectedApproverMap; onOk: (selected: SelectedApproverMap) => void; onCancel: () => void; } declare const InitiatorApproverSelector: React__default.FC; interface UseProcessCapabilitiesOptions extends ResolveProcessCapabilitiesParams { enabled?: boolean; refreshKey?: unknown; onError?: (error: Error) => void; } interface UseProcessCapabilitiesReturn { capabilities: ProcessCapabilities | null; operations: ProcessCapabilityOperation[]; timeline: Array>; loading: boolean; error: Error | null; refresh: () => Promise; } declare function useProcessCapabilities(options: UseProcessCapabilitiesOptions): UseProcessCapabilitiesReturn; interface ExecuteProcessOperationInput { comments?: string; reason?: string; newAssignee?: string; targetNodeId?: string; payload?: unknown; submissionDepartmentId?: string; selectedApprovers?: Record; initiatorSelectedApprovers?: Record; updateFormDataJson?: string; } interface UseProcessActionsOptions { capabilities?: ProcessCapabilities | null; formUuid?: string; appType?: string; getFormValues?: () => Record; onActionComplete?: (action: WorkflowCapabilityActionKey, operation: ProcessCapabilityOperation) => Promise | void; } interface UseProcessActionsReturn { loadingAction: WorkflowCapabilityActionKey | null; executeOperation: (operation: ProcessCapabilityOperation, input?: ExecuteProcessOperationInput) => Promise; execute: (action: WorkflowCapabilityActionKey, input?: ExecuteProcessOperationInput) => Promise; } declare function useProcessActions(options: UseProcessActionsOptions): UseProcessActionsReturn; interface ProcessActionBarProps extends UseProcessActionsOptions { capabilities?: ProcessCapabilities | null; capabilityParams?: UseProcessCapabilitiesOptions; operations?: ProcessCapabilityOperation[]; onRefreshCapabilities?: () => Promise | void; className?: string; maxMobileButtons?: number; inDrawer?: boolean; maxWidth?: number | string; position?: "sticky" | "fixed" | "inline"; } declare const ProcessActionBar: React__default.FC; interface ProcessTimelineProps extends Omit { capabilities?: ProcessCapabilities | null; tasks?: ApprovalTimelineProps["tasks"]; } declare const ProcessTimeline: React__default.FC; declare const ProcessPreviewPanel: React__default.FC; type ProcessPreviewPanelProps = ProcessPreviewProps; interface UseAuthOptions extends Partial { } interface UseLoginMethodsState { data: LoginMethodsResult | null; methods: AuthMethod[]; loading: boolean; error: Error | null; reload: () => Promise; } interface LoginPageProps extends UseAuthOptions { title?: React__default.ReactNode; subtitle?: React__default.ReactNode; className?: string; style?: CSSProperties; defaultMethod?: "password" | "phone_code"; dingtalkFlow?: DingTalkLoginFlow; redirectUrl?: string; redirectOnSuccess?: boolean; onSuccess?: (data: AuthTokenData) => void | Promise; } declare const useAuth: (options?: UseAuthOptions) => { client: AppAuthClient; getMethods: () => Promise; passwordLogin: (input: PasswordLoginInput) => Promise; dingtalkLogin: (input: DingTalkLoginInput) => Promise; getDingTalkOAuthUrl: (input?: DingTalkOAuthStartInput) => Promise; guestLogin: (input?: GuestLoginInput) => Promise; sendPhoneCode: (input: PhoneCodeInput) => Promise; phoneCodeLogin: (input: PhoneCodeLoginInput) => Promise; registerWithPhoneCode: (input: PhoneCodeRegisterInput) => Promise; getSsoLoginUrl: (input?: SsoLoginUrlInput) => Promise; refresh: (input?: RefreshInput) => Promise; logout: () => Promise; resolveLoginUrl: (input?: ResolveLoginUrlInput) => string; }; declare const useLoginMethods: (options?: UseAuthOptions) => UseLoginMethodsState; declare const LoginPage: React__default.FC; type RuntimeErrorType = "unauthenticated" | "forbidden" | "network" | "unknown"; type RuntimeRequestError = Error & { type?: RuntimeErrorType; status?: number; code?: number | string; payload?: unknown; }; interface RuntimeErrorSnapshot { type: RuntimeErrorType; status?: number; code?: number | string; message: string; payload?: unknown; } interface RuntimeMenuItem { id: string; name: string; resourceCode?: string | null; routeCode?: string | null; path?: string | null; type?: string; formUuid?: string | null; pageId?: string | null; parentId?: string | null; sortOrder?: number; isHidden?: boolean; icon?: string | null; children?: RuntimeMenuItem[]; [key: string]: unknown; } interface RuntimePagePermissions { appType: string; hasFullAccess: boolean; roleCodes: string[]; platformRoleCodes?: string[]; roleSource?: string; menuFormUuids: string[]; menuCodes: string[]; routeCodes: string[]; pathPatterns: string[]; } interface RuntimeBootstrap { appType: string; app?: Record | null; user?: Record | null; runtime?: { mode?: "legacy" | "react-spa" | string; settings?: Record; activeReleaseId?: string | null; activeBuildId?: string | null; indexUrl?: string | null; assetBaseUrl?: string | null; }; permissions?: RuntimePagePermissions; menus?: RuntimeMenuItem[]; servicePrefix?: string; } interface RouteAccessResult { appType: string; canAccess: boolean; routeCode?: string; menuCode?: string; path?: string; status?: number; code?: number | string; message?: string; errorType?: RuntimeErrorType; payload?: unknown; permissions?: RuntimePagePermissions; } interface RuntimeRequestState { data: T | null; loading: boolean; error: RuntimeRequestError | null; } type RuntimeAuthStatus = "unknown" | "authenticated" | "refreshing" | "unauthenticated"; interface RuntimeAuthState { status: RuntimeAuthStatus; error?: RuntimeRequestError | null; refreshedAt?: number; } interface RuntimeReloadOptions { accessToken?: string | null; accessTokenOptions?: RuntimeAccessTokenOptions; } interface RuntimeAccessTokenOptions { scope?: "default" | "public"; path?: string | null; clearIfToken?: string; expiresAt?: number; } interface OpenXiangdaProviderProps { appType?: string; servicePrefix?: string; fetchImpl?: typeof fetch; children: React__default.ReactNode; } interface OpenXiangdaPageProviderProps { children: React__default.ReactNode; page?: Partial; route?: Partial; env?: Record; message?: Partial; modal?: Partial; navigation?: Partial; } interface OpenXiangdaRuntimeStore extends RuntimeRequestState { appType: string; servicePrefix: string; fetchImpl: typeof fetch; baseFetchImpl: typeof fetch; authState: RuntimeAuthState; getAuthHeaders: () => HeadersInit; reload: (options?: RuntimeReloadOptions) => Promise; setAccessToken: (accessToken?: string | null, options?: RuntimeAccessTokenOptions) => void; } declare const OpenXiangdaProvider: React__default.FC; declare const useOpenXiangda: () => OpenXiangdaRuntimeStore; declare const useRuntimeBootstrap: () => OpenXiangdaRuntimeStore; declare const OpenXiangdaPageProvider: React__default.FC; declare const useAppMenus: () => { data: RuntimeMenuItem[]; appType: string; servicePrefix: string; fetchImpl: typeof fetch; baseFetchImpl: typeof fetch; authState: RuntimeAuthState; getAuthHeaders: () => HeadersInit; reload: (options?: RuntimeReloadOptions) => Promise; setAccessToken: (accessToken?: string | null, options?: RuntimeAccessTokenOptions) => void; loading: boolean; error: RuntimeRequestError | null; }; declare const usePermission: () => { data: RuntimePagePermissions | null; appType: string; servicePrefix: string; fetchImpl: typeof fetch; baseFetchImpl: typeof fetch; authState: RuntimeAuthState; getAuthHeaders: () => HeadersInit; reload: (options?: RuntimeReloadOptions) => Promise; setAccessToken: (accessToken?: string | null, options?: RuntimeAccessTokenOptions) => void; loading: boolean; error: RuntimeRequestError | null; }; interface UseCanAccessRouteInput { routeCode?: string; menuCode?: string; path?: string; } declare const useCanAccessRoute: (input: UseCanAccessRouteInput) => { canAccess: boolean; data: RouteAccessResult | null; loading: boolean; error: RuntimeRequestError | null; }; interface PermissionBoundaryProps extends UseCanAccessRouteInput { children: React__default.ReactNode; fallback?: React__default.ReactNode | PermissionBoundaryFallback; loadingFallback?: React__default.ReactNode | PermissionBoundaryFallback; } interface PermissionBoundaryFallbackState { access: ReturnType; runtime: ReturnType; error: RuntimeRequestError | null; errorType: RuntimeErrorType; status?: number; code?: number | string; message: string; } type PermissionBoundaryFallback = (state: PermissionBoundaryFallbackState) => React__default.ReactNode; declare const PermissionBoundary: React__default.FC; interface RuntimeResolveLoginOptions { redirectUri?: string; loginUrl?: string; domain?: string; } interface RuntimeRedirectLoginOptions extends RuntimeResolveLoginOptions { replace?: boolean; } interface RuntimeLogoutOptions extends RuntimeRedirectLoginOptions { continueOnError?: boolean; } declare const useRuntimeAuth: () => { logout: () => Promise; logoutAndRedirect: (options?: RuntimeLogoutOptions) => Promise; redirectToLogin: (options?: RuntimeRedirectLoginOptions) => Promise; resolveLoginUrl: (options?: RuntimeResolveLoginOptions) => Promise; }; interface RuntimeAuthGuardProps extends RuntimeRedirectLoginOptions { children: React__default.ReactNode; fallback?: React__default.ReactNode; disabled?: boolean; excludedPaths?: string[]; } declare const RuntimeAuthGuard: React__default.FC; interface UsePublicAccessOptions extends PublicAccessSessionInput { appType?: string; servicePrefix?: string; fetchImpl?: typeof fetch; autoStart?: boolean; } interface UsePublicAccessState { loading: boolean; error: PublicAccessClientError | null; session: PublicAccessSessionData | null; publicAccess: PublicAccessClaim | null; startSession: (input?: PublicAccessSessionInput) => Promise; } declare const usePublicAccess: (options?: UsePublicAccessOptions) => UsePublicAccessState; interface PublicAccessGateProps extends UsePublicAccessOptions { children: React__default.ReactNode; fallback?: React__default.ReactNode; errorFallback?: React__default.ReactNode | ((error: PublicAccessClientError) => React__default.ReactNode); } declare const PublicAccessGate: React__default.FC; type AdminListSortDirection = "ascend" | "descend"; interface AdminListSort { field: string; direction: AdminListSortDirection; } interface AdminListQuery { currentPage: number; pageSize: number; filters: Record; sorts: AdminListSort[]; fixedFilters?: Record; } interface AdminListResult { rows: Row[]; total: number; currentPage?: number; pageSize?: number; allowedColumnKeys?: string[]; hiddenFieldsCount?: number; } interface AdminListOption { label: ReactNode; value: string | number | boolean; disabled?: boolean; } type AdminListSearchFieldType = "text" | "select" | "multiSelect" | "number" | "date" | "dateRange"; interface AdminListSearchRenderProps { disabled?: boolean; onChange: (value: unknown) => void; value: unknown; } interface AdminListSearchField { key: string; label: ReactNode; type?: AdminListSearchFieldType; placeholder?: string; options?: AdminListOption[]; defaultVisible?: boolean; locked?: boolean; disabled?: boolean; operator?: string; render?: (props: AdminListSearchRenderProps) => ReactNode; } interface AdminListColumn { key: string; title: ReactNode; dataIndex?: string | string[]; align?: "left" | "center" | "right"; width?: number; minWidth?: number; fixed?: "left" | "right"; ellipsis?: boolean; sortable?: boolean; sortField?: string; locked?: boolean; hidden?: boolean; defaultVisible?: boolean; exportable?: boolean; export?: false | Omit; permissionKey?: string; render?: (value: unknown, row: Row, index: number) => ReactNode; } interface AdminListRowAction { key: string; label: ReactNode; danger?: boolean; disabled?: boolean | ((row: Row) => boolean); hidden?: boolean | ((row: Row) => boolean); onClick: (row: Row) => void | Promise; } interface AdminListBatchAction { key: string; label: ReactNode; danger?: boolean; disabled?: boolean; onClick: (rows: Row[], rowKeys: Key[]) => void | Promise; } type AdminListDensity = "small" | "middle" | "large"; interface AdminListColumnPreference { key: string; visible?: boolean; width?: number; fixed?: "left" | "right" | null; } interface AdminListSearchPreference { key: string; visible?: boolean; } interface AdminListPreference { version: number; columns?: AdminListColumnPreference[]; searches?: AdminListSearchPreference[]; sorts?: AdminListSort[]; density?: AdminListDensity; pageSize?: number; defaultVisibleSearchCount?: number; showBorders?: boolean; striped?: boolean; hoverActions?: boolean; updatedAt?: string; } interface AdminListLockedPreference { visibleColumnKeys?: string[]; hiddenColumnKeys?: string[]; lockedColumnKeys?: string[]; visibleSearchKeys?: string[]; hiddenSearchKeys?: string[]; lockedSearchKeys?: string[]; sorts?: AdminListSort[]; density?: AdminListDensity; pageSize?: number; } interface AdminListPreferenceStore { get: (listKey: string) => Promise; put: (listKey: string, preference: AdminListPreference) => Promise; remove: (listKey: string) => Promise; } type AdminListExportScope = "selected" | "all"; interface AdminListExportInput { scope: AdminListExportScope; query: AdminListQuery; rowIds?: Key[]; fieldKeys: string[]; columns?: StructuredExportColumnDefinition[]; fileName?: string; workbook?: StructuredExportWorkbookDefinition; } type AdminListExportTaskStatus = "pending" | "running" | "completed" | "failed"; interface AdminListExportTask { id: string; status: AdminListExportTaskStatus; progress?: number; total?: number; processed?: number; message?: string; downloadUrl?: string; expiresAt?: string; } interface AdminListExportDownloadOptions { fileName?: string; } interface AdminListDataSource { key?: string; query: (query: AdminListQuery) => Promise>; preferences?: AdminListPreferenceStore; createExportTask?: (input: AdminListExportInput) => Promise; getExportTask?: (taskId: string) => Promise; downloadExportTask?: (task: AdminListExportTask, options?: AdminListExportDownloadOptions) => Promise; } interface AdminListDataSourceOptions { sdk: PageSdk; appType?: string; listKey: string; exportDefinitionCode?: string; exportDefinitionInput?: Record; } interface AdminListFormSourceOptions extends AdminListDataSourceOptions { formUuid: string; filterOperators?: Record; fixedFilters?: Record; idField?: string; } interface AdminListDataViewSourceOptions extends AdminListDataSourceOptions { dataViewCode: string; fields?: string[]; filterOperators?: Record; fixedFilters?: Record; idField?: string; } interface AdminListFunctionSourceOptions extends AdminListDataSourceOptions { functionCode: string; fixedFilters?: Record; } interface AdminListSelectionChange { rowKeys: Key[]; rows: Row[]; } interface AdminListProps { listKey: string; rowKey: string | ((row: Row) => Key); columns: AdminListColumn[]; searchFields?: AdminListSearchField[]; dataSource: AdminListDataSource; configVersion?: number; defaultSorts?: AdminListSort[]; defaultPageSize?: number; pageSizeOptions?: number[]; defaultVisibleSearchCount?: number; fixedFilters?: Record; lockedPreference?: AdminListLockedPreference; selectable?: boolean; selectedRowKeys?: Key[]; rowSelectable?: (row: Row) => boolean; rowSelectionReason?: (row: Row) => string | undefined; preserveSelectionAcrossPages?: boolean; exportable?: boolean; fileName?: string; rowActions?: AdminListRowAction[]; batchActions?: AdminListBatchAction[]; toolbar?: ReactNode | ((context: { reload: () => void; }) => ReactNode); emptyText?: ReactNode; className?: string; style?: CSSProperties; onSelectionChange?: (selection: AdminListSelectionChange) => void; onQueryChange?: (query: AdminListQuery) => void; onRow?: (row: Row) => HTMLAttributes; } declare function AdminList(props: AdminListProps): React.JSX.Element; declare function createFormAdminListSource(options: AdminListFormSourceOptions): AdminListDataSource; declare function createDataViewAdminListSource(options: AdminListDataViewSourceOptions): AdminListDataSource; declare function createFunctionAdminListSource(options: AdminListFunctionSourceOptions): AdminListDataSource; declare function mergeAdminListPreference(input: { version: number; columns: AdminListColumn[]; searchFields: AdminListSearchField[]; defaultSorts?: AdminListSort[]; defaults?: Partial; user?: AdminListPreference | null; locked?: AdminListLockedPreference; allowedColumnKeys?: string[]; }): AdminListPreference; declare function createAdminListPreferenceStore(sdk: PageSdk, appType: string): AdminListPreferenceStore; declare const DINGTALK_OAUTH_BROWSER_CONTEXT_CHANGED = "DINGTALK_OAUTH_BROWSER_CONTEXT_CHANGED"; type DingTalkLoginEnvironment = "dingtalk" | "wechat" | "browser"; type DingTalkAuthCodeResult = { code?: string; [key: string]: unknown; }; type DingTalkAuthCodeOptions = { clientId: string; corpId: string; onSuccess: (result: DingTalkAuthCodeResult | string) => void; onFail: (error: unknown) => void; }; type DingTalkAuthCodeRequest = (options: DingTalkAuthCodeOptions) => unknown; type DingTalkClient = { env?: { platform?: string; }; error?: (callback: (error: unknown) => void) => void; ready?: (callback: () => void) => void; requestAuthCode?: DingTalkAuthCodeRequest; runtime?: { permission?: { requestAuthCode?: DingTalkAuthCodeRequest; }; }; }; type DingTalkBrowserContext = { dd?: DingTalkClient; navigator?: { userAgent?: string; }; }; type LoadDingTalkClientOptions = { timeoutMs?: number; }; type RequestDingTalkAuthCodeOptions = { clientId: string; corpId: string; client?: DingTalkClient; timeoutMs?: number; }; interface DingTalkExternalBrowserGuideProps { open: boolean; appName?: ReactNode; className?: string; style?: CSSProperties; title?: ReactNode; description?: ReactNode; } declare function detectDingTalkLoginEnvironment(context?: DingTalkBrowserContext | undefined): DingTalkLoginEnvironment; declare function isWeChatBrowser(context?: DingTalkBrowserContext | undefined): boolean; declare function isDingTalkContainer(context?: DingTalkBrowserContext | undefined): boolean; declare function isDingTalkJsApiReady(context?: DingTalkBrowserContext | undefined): boolean; declare function getDingTalkClient(context?: DingTalkBrowserContext | undefined): DingTalkClient | undefined; declare function loadDingTalkClient({ timeoutMs, }?: LoadDingTalkClientOptions): Promise; declare function requestDingTalkAuthCode({ clientId, corpId, client, timeoutMs, }: RequestDingTalkAuthCodeOptions): Promise; declare function getDingTalkOAuthRecoveryMessage(search?: string | URLSearchParams): "检测到授权过程中切换了浏览器,请在当前浏览器重新点击“使用钉钉登录”。" | undefined; declare const DingTalkExternalBrowserGuide: React__default.FC; export { AdminList, type AdminListBatchAction, type AdminListColumn, type AdminListColumnPreference, type AdminListDataSource, type AdminListDataSourceOptions, type AdminListDataViewSourceOptions, type AdminListDensity, type AdminListExportDownloadOptions, type AdminListExportInput, type AdminListExportScope, type AdminListExportTask, type AdminListExportTaskStatus, type AdminListFormSourceOptions, type AdminListFunctionSourceOptions, type AdminListLockedPreference, type AdminListOption, type AdminListPreference, type AdminListPreferenceStore, type AdminListProps, type AdminListQuery, type AdminListResult, type AdminListRowAction, type AdminListSearchField, type AdminListSearchFieldType, type AdminListSearchPreference, type AdminListSelectionChange, type AdminListSort, type AdminListSortDirection, type ApiEnvelope, type ApiPermissionListParams, type AppAuthClient, type AppFunctionAttachmentReference, type AppFunctionBase64File, type AppFunctionConnectorApi, type AppFunctionContext, type AppFunctionContextV2, type AppFunctionDataViewApi, type AppFunctionFileReadInput, type AppFunctionFileReadOptions, type AppFunctionFilesApi, type AppFunctionFormApi, type AppFunctionFormDeleteResult, type AppFunctionFormFileReadOptions, type AppFunctionFormGetByIdParams, type AppFunctionFormQueryParams, type AppFunctionFormWriteParams, type AppFunctionHttpApi, type AppFunctionHttpRequest, type AppFunctionHttpResponse, type AppFunctionManifestV2, type AppFunctionNotificationApi, type AppFunctionOperatorInfo, type AppFunctionOrganizationApi, type AppFunctionPermissionContext, type AppFunctionPlatformApi, type AppFunctionPlatformApiRequest, type AppFunctionPlatformApiResponse, type AppFunctionPlatformHttpApi, type AppFunctionPlatformRolesApi, type AppFunctionProcessApi, type AppFunctionProcessStartResult, type AppFunctionProcessTaskResult, type AppFunctionProcessWithdrawResult, type AppFunctionRoleBatchAddResult, type AppFunctionRoleListParams, type AppFunctionRoleMemberMutationResult, type AppFunctionRoleUsersParams, type AppFunctionRuntimeContext, type AppFunctionSecretRef, type AppFunctionSecrets, type AppFunctionUtils, type ApproveTaskParams, type AssignPermissionsParams, type AssignRolesParams, AttachmentPreviewList, type AttachmentPreviewListProps, type AuthChallengePayload, AuthClientError, type AuthClientErrorOptions, type AuthClientOptions, type AuthErrorExtra, type AuthLogoutRedirectOptions, type AuthMethod, type AuthMethodType, type AuthTokenData, type AuthUser, type BatchAddUsersToRoleParams, type BatchSendNotificationByTypeParams, type ChangeOrganizationAccountPasswordParams, type ChangeUserRoleParams, type ConnectorCallParams, type ConnectorInvokeParams, type ConnectorInvokeResult, type ConnectorRequestBodyType, type ConnectorResponseType, type CreateApiPermissionParams, type CreateFileAccessTicketOptions, type CreateFormPermissionGroupDto, type CreateOrganizationAccountParams, type CreateOrganizationDepartmentParams, type CreatePagePermissionGroupDto, type CreateRoleParams, type CreateUiPermissionParams, type CreateUserParams, type CurrentUserDepartmentParents, type CustomPageEntryConfig, type CustomPageEntryMode, DINGTALK_OAUTH_BROWSER_CONTEXT_CHANGED, type DataManagementConfigParams, type DataManagementFilterState, type DataPermissionConditionDto, type DataPermissionDto, type DataPermissionRuleDto, type DataViewQueryParams, type DataViewQueryResult, type DataViewStatsParams, type DingTalkBrowserContext, type DingTalkClient, DingTalkExternalBrowserGuide, type DingTalkExternalBrowserGuideProps, type DingTalkLoginEnvironment, type DingTalkLoginFlow, type DingTalkLoginInput, type DingTalkNotificationCapabilities, type DingTalkNotificationCardConfig, type DingTalkNotificationCardField, type DingTalkNotificationCardMode, type DingTalkNotificationCardPreview, type DingTalkNotificationChannelConfig, type DingTalkNotificationDeliveryMode, type DingTalkNotificationPreviewResult, type DingTalkOAuthStartInput, type DingTalkOAuthStartResult, type ExecuteProcessOperationInput, type FieldAccessLevel, type FieldAccessPolicyDto, type FieldAccessPolicyItemDto, type FieldOptionValue, type FieldPermissionDto, type FileAccessTicketAction, type FileAccessTicketPurpose, type FileAccessTicketResult, type FilePreviewController, type FilePreviewItem, type FindNotificationConfigParams, type FormAdvancedSearchParams, type FormChangeRecordParams, type FormCreateParams, type FormCreateResult, type FormDetailResult, type FormExportParams, type FormFieldValue, type FormGetDetailParams, type FormImportParams, type FormInstanceIdentifierResult, type FormPermissionGroup, type FormRemoveParams, type FormSearchParams, type FormUpdateParams, type FormUpdateResult, type FunctionInvokeParams, type FunctionInvokeResult, type GetParentDepartmentsOptions, type GetProcessInstanceParams, type GetUserRolesParams, type GuestLoginInput, ImagePreviewGrid, type ImagePreviewGridProps, type ImportExportRecordDownloadParams, type ImportExportRecordQuery, InitiatorApproverSelector, type InstanceStatus, type ListNotificationInboxParams, type ListWorkCenterItemsParams, type LoadDingTalkClientOptions, type LoginLogGetParams, type LoginLogListParams, type LoginLogRecord, type LoginLogStats, type LoginLogStatsParams, type LoginLogStatus, type LoginMethodsResult, LoginPage, type LoginPageProps, type MarkAllNotificationReadResult, type NotificationChannel, type NotificationChannelConfig, type NotificationChannelsConfig, type NotificationConfigLevel, type NotificationInboxListResult, type NotificationInboxMessage, type NotificationInboxReadStatus, type NotificationMessageRecord, type NotificationTemplate, type NotificationTemplatePreview, type NotificationTypeConfig, type NotificationUnreadCountResult, OpenXiangdaPageProvider, type OpenXiangdaPageProviderProps, OpenXiangdaProvider, type OpenXiangdaProviderProps, type OrganizationAccountListParams, type OrganizationCapabilities, type OrganizationListResult, type PageApiPermissionRecord, type PageApiResponse, type PageAppInfo, type PageBinaryResponse, type PageBridgeApi, type PageContext, type PageDataManagementConfig, type PageDataSourceDescriptor, type PageDepartmentInfo, type PageDepartmentRecord, type PageHttpMethod, type PageInfo, type PageListResult, type PageMessageApi, type PageModalApi, type PageNavigationApi, type PageOffsetListResult, type PagePermissionGroup, type PagePermissionInfo, PageProvider, type PageQueryValue, type PageRequestCache, type PageRequestOptions, type PageRoleRecord, type PageRouteInfo, type PageScope, type PageSdk, type PageSdkError, type PageSdkMeta, type PageTransportDownloadPayload, type PageTransportRequestPayload, type PageUiPermissionRecord, type PageUiPermissionType, type PageUserInfo, type PageUserRecord, type PageUserType, type PasswordLoginInput, PermissionBoundary, type PermissionBoundaryFallback, type PermissionBoundaryFallbackState, type PermissionBoundaryProps, type PhoneCodeInput, type PhoneCodeLoginInput, type PhoneCodeRegisterInput, type PhoneCodeSendResult, type PreviewDingTalkNotificationParams, type PreviewNotificationTemplateParams, ProcessActionBar, type ProcessActionBarProps, type ProcessApproveAction, type ProcessCapabilities, type ProcessCapabilityOperation, type ProcessInstanceLookupParams, ProcessPreviewPanel, type ProcessPreviewPanelProps, ProcessTimeline, type ProcessTimelineProps, type PublicAccessClaim, type PublicAccessClient, PublicAccessClientError, type PublicAccessClientOptions, PublicAccessGate, type PublicAccessGateProps, type PublicAccessSessionData, type PublicAccessSessionInput, type PublicFormGrant, type PublicStorageAction, type PublicStorageGrant, type QueryFormPermissionGroupDto, type QueryPagePermissionGroupDto, type RefreshInput, type RequestDingTalkAuthCodeOptions, type ResetOrganizationAccountPasswordParams, type ResolveLoginUrlInput, type ResolveProcessCapabilitiesParams, type RoleListParams, type RoleUsersParams, type RouteAccessResult, RuntimeAuthGuard, type RuntimeAuthGuardProps, type RuntimeAuthState, type RuntimeAuthStatus, type RuntimeBootstrap, type RuntimeErrorSnapshot, type RuntimeErrorType, type RuntimeLogoutOptions, type RuntimeMenuItem, type RuntimePagePermissions, type RuntimeRedirectLoginOptions, type RuntimeRequestError, type RuntimeRequestState, type RuntimeResolveLoginOptions, type SaveDataManagementConfigParams, type SchoolContactClass, type SchoolContactPerson, type SchoolContactRelationListParams, type SchoolContactRelationListResult, type SchoolContactRelationRecord, type SchoolContactSyncState, type SchoolContactTeacher, type SchoolContactTeacherListParams, type SchoolContactTeacherListResult, type SchoolContactTeacherMembershipRecord, type SearchComponentName, type SearchExpression, type SearchFieldKey, type SearchGroup, type SearchLogic, type SearchOperator, type SearchRule, type SearchSortItem, type SearchSystemField, type SendNotificationByTypeParams, type SendNotificationResult, type SsoLoginUrlInput, type SsoLoginUrlResult, type StructuredExportCellStyle, type StructuredExportColumnDefinition, type StructuredExportCreateParams, type StructuredExportFormatDefinition, type StructuredExportFormatType, type StructuredExportGetParams, type StructuredExportScope, type StructuredExportSheetDefinition, type StructuredExportSourceDefinition, type StructuredExportStyleRule, type StructuredExportTask, type StructuredExportTaskStatus, type StructuredExportValueDefinition, type StructuredExportWorkbookDefinition, type SubFormRule, type SwitchAppRoleParams, type SwitchPlatformRoleParams, type TerminateProcessInstanceParams, type TriggerCallbackTaskParams, type TrustedNodeV2Context, type UiPermissionListParams, type UpdateApiPermissionParams, type UpdateDingTalkCardParams, type UpdateDingTalkCardResult, type UpdateFormPermissionGroupDto, type UpdateOrganizationAccountParams, type UpdateOrganizationDepartmentParams, type UpdatePagePermissionGroupDto, type UpdateRoleParams, type UpdateUiPermissionParams, type UpdateUserParams, type UseAuthOptions, type UseCanAccessRouteInput, type UseFilePreviewOptions, type UseLoginMethodsState, type UseProcessActionsOptions, type UseProcessActionsReturn, type UseProcessCapabilitiesOptions, type UseProcessCapabilitiesReturn, type UsePublicAccessOptions, type UsePublicAccessState, type UserListParams, type UserMenuPermissionsResponse, type ValidateUserParams, type ViewFieldPermissionValue, type ViewOperationPermission, type ViewPermissionSummary, type WorkCenterBoxType, type WorkCenterGroupedStat, type WorkCenterItem, type WorkCenterListResult, type WorkCenterStats, type WorkCenterStatsParams, type WorkflowApproveParams, type WorkflowCapabilityActionKey, type WorkflowDefinitionByFormParams, type WorkflowInitiatorSelectCandidatesParams, type WorkflowInitiatorSelectRequirementsParams, type WorkflowPreviewParams, type WorkflowResubmitInitiatorSelectRequirementsParams, type WorkflowResubmitParams, type WorkflowReturnParams, type WorkflowSaveTaskParams, type WorkflowStartFromExistingInstanceParams, type WorkflowTaskParams, type WorkflowTransferParams, type WorkflowWithdrawParams, createAdminListPreferenceStore, createAuthClient, createDataViewAdminListSource, createFormAdminListSource, createFunctionAdminListSource, createPageFormRuntimeApi, createPageSdk, createPublicAccessClient, createReactPage, detectDingTalkLoginEnvironment, getAuthErrorExtra, getAuthErrorReason, getDingTalkClient, getDingTalkOAuthRecoveryMessage, isAuthChallengeRequired, isAuthClientError, isDingTalkContainer, isDingTalkJsApiReady, isWeChatBrowser, loadDingTalkClient, mergeAdminListPreference, requestDingTalkAuthCode, useAppMenus, useAuth, useCanAccessRoute, useCurrentUser, useDataSource, useFilePreview, useFormViewPermissions, useLoginMethods, useMessage, useModal, useNavigation, useOpenXiangda, usePageContext, usePageFormRuntimeApi, usePageProps, usePageRoute, usePageSdk, usePermission, useProcessActions, useProcessCapabilities, usePublicAccess, useRuntimeAuth, useRuntimeBootstrap };