///
import { CompiledSelectionFlowModuleConfig, FlowModuleProps, SelectionDraftField, SelectionFlowContextValue, SelectionFlowDraft, SelectionFlowDraftUpdate, SelectionFlowModuleAdapter, SelectionFlowServices } from "./types.js";
import * as _$react from "react";
import * as _$_pisell_materials_src0 from "@pisell/materials/src";
//#region src/pro/skuDetailModal/flow/registry.d.ts
/**
* 第一期使用静态注册表,模块 key 同时作为 SelectionModuleType 的类型来源。
* 新类型只需实现适配器并在此增加一项,不提供运行时 register API。
*/
declare const flowModuleRegistry: {
readonly sku: SelectionFlowModuleAdapter;
readonly date: SelectionFlowModuleAdapter;
readonly multiDayDate: {
type: "multiDayDate";
validateAutoResolution: undefined;
provides: ("booking.startDate" | "booking.endDate" | "booking.duration")[];
initializeWhileInactive?: boolean | undefined;
hardRequires?: readonly SelectionDraftField[] | undefined;
refreshOn?: readonly SelectionDraftField[] | undefined;
shouldRefresh?: ((context: _$_pisell_materials_src0.SelectionFlowContextValue, change: _$_pisell_materials_src0.SelectionFlowDraftChange, module: _$_pisell_materials_src0.CompiledSelectionFlowModuleConfig) => boolean) | undefined;
isApplicable?: ((context: _$_pisell_materials_src0.SelectionFlowContextValue, module: _$_pisell_materials_src0.CompiledSelectionFlowModuleConfig) => boolean) | undefined;
canInitialize?: ((context: _$_pisell_materials_src0.SelectionFlowContextValue, module: _$_pisell_materials_src0.CompiledSelectionFlowModuleConfig) => boolean | Promise) | undefined;
refresh?: ((context: _$_pisell_materials_src0.SelectionFlowContextValue, module: _$_pisell_materials_src0.CompiledSelectionFlowModuleConfig) => void | Promise) | undefined;
reconcile?: ((context: _$_pisell_materials_src0.SelectionFlowContextValue, change: _$_pisell_materials_src0.SelectionFlowDraftChange, module: _$_pisell_materials_src0.CompiledSelectionFlowModuleConfig) => void | Promise) | undefined;
clearDependencies?: ((context: _$_pisell_materials_src0.SelectionFlowContextValue, change: _$_pisell_materials_src0.SelectionFlowDraftChange, module: _$_pisell_materials_src0.CompiledSelectionFlowModuleConfig) => void | Promise) | undefined;
validate?: ((context: _$_pisell_materials_src0.SelectionFlowContextValue, handle: _$_pisell_materials_src0.FlowModuleHandle | null, module: _$_pisell_materials_src0.CompiledSelectionFlowModuleConfig) => _$_pisell_materials_src0.FlowModuleValidationReturn) | undefined;
beforeLeave?: ((context: _$_pisell_materials_src0.SelectionFlowContextValue, handle: _$_pisell_materials_src0.FlowModuleHandle | null, module: _$_pisell_materials_src0.CompiledSelectionFlowModuleConfig) => _$_pisell_materials_src0.FlowModuleBeforeLeaveReturn) | undefined;
Component: _$react.ComponentType>;
rendersOwnError?: boolean | undefined;
};
readonly time: SelectionFlowModuleAdapter;
readonly bookingPrice: {
type: string;
Component: _$react.FC>;
initializeWhileInactive: true;
hardRequires: ("productData" | "booking.selectedCandidate")[];
refreshOn: ("productData" | "skuValue" | "quantity" | "booking.customerId" | "booking.duration" | "booking.selectedCandidate")[];
isApplicable: (context: _$_pisell_materials_src0.SelectionFlowContextValue) => boolean;
canInitialize: (context: _$_pisell_materials_src0.SelectionFlowContextValue) => boolean;
refresh: (context: SelectionFlowContextValue, module: CompiledSelectionFlowModuleConfig) => Promise;
shouldRefresh: (_context: _$_pisell_materials_src0.SelectionFlowContextValue, change: _$_pisell_materials_src0.SelectionFlowDraftChange) => boolean;
clearDependencies: (context: _$_pisell_materials_src0.SelectionFlowContextValue, change: _$_pisell_materials_src0.SelectionFlowDraftChange, module: _$_pisell_materials_src0.CompiledSelectionFlowModuleConfig) => void;
validate: (context: _$_pisell_materials_src0.SelectionFlowContextValue, handle: _$_pisell_materials_src0.FlowModuleHandle | null) => true | {
valid: boolean;
message?: string | undefined;
} | Promise<_$_pisell_materials_src0.FlowModuleValidationResult>;
validateAutoResolution: (context: SelectionFlowContextValue) => boolean;
};
readonly capacity: {
type: "capacity";
Component: _$react.FC>;
provides: "booking.capacity"[];
hardRequires: "productData"[];
refreshOn: ("productData" | "skuValue" | "quantity")[];
isApplicable: (context: _$_pisell_materials_src0.SelectionFlowContextValue) => boolean;
canInitialize: () => true;
refresh: (context: _$_pisell_materials_src0.SelectionFlowContextValue, module: _$_pisell_materials_src0.CompiledSelectionFlowModuleConfig<"capacity">) => void;
validate: (context: _$_pisell_materials_src0.SelectionFlowContextValue, handle: _$_pisell_materials_src0.FlowModuleHandle | null) => _$_pisell_materials_src0.FlowModuleValidationReturn;
validateAutoResolution: (context: _$_pisell_materials_src0.SelectionFlowContextValue) => boolean;
};
readonly resource: SelectionFlowModuleAdapter;
readonly holder: SelectionFlowModuleAdapter;
readonly price: {
type: "price";
Component: _$react.FC>;
provides: "priceOverride"[];
isApplicable: (context: _$_pisell_materials_src0.SelectionFlowContextValue, module: _$_pisell_materials_src0.CompiledSelectionFlowModuleConfig<"price">) => boolean;
canInitialize: () => true;
refreshOn: ("productData" | "skuValue" | "weighing" | "bookingPrice")[];
shouldRefresh: (_context: _$_pisell_materials_src0.SelectionFlowContextValue, change: _$_pisell_materials_src0.SelectionFlowDraftChange) => boolean;
refresh: (context: _$_pisell_materials_src0.SelectionFlowContextValue, module: _$_pisell_materials_src0.CompiledSelectionFlowModuleConfig<"price">) => void;
validate: (_context: _$_pisell_materials_src0.SelectionFlowContextValue, handle: _$_pisell_materials_src0.FlowModuleHandle | null) => _$_pisell_materials_src0.FlowModuleValidationReturn;
};
readonly weighing: {
readonly type: "weighing";
readonly Component: _$react.FC>;
readonly provides: readonly ["weighing"];
readonly hardRequires: readonly ["productData"];
readonly refreshOn: readonly ["productData", "skuValue", "weighing"];
readonly isApplicable: (context: _$_pisell_materials_src0.SelectionFlowContextValue) => boolean;
};
};
//#endregion
export { flowModuleRegistry };