import { Action, MutableStore, ModelActionContext, ModelActionMap, ModelEffectsMap, ModelWithMethods, MapActionsUnion, Equality, ModelEffectsContext, Domain, ActionMatcher } from "../types"; /** * Internal type for a registered fallback handler. */ interface FallbackEntry { matchers: ActionMatcher[] | null; handler: (state: TState, action: Action) => TState; } /** * Create a model from a store, action map, and optional effects map. * Model IS the store with bound action/effect methods attached. * This means models can be used anywhere a store is expected (useSelector, derived, etc.) */ export declare function createModel, TEffectsMap extends ModelEffectsMap>>(store: MutableStore>, actionCreators: Record any>, effectsMap?: TEffectsMap): ModelWithMethods; /** * Create the action builder context with helpers and fallback entry collection. */ export declare function createActionContext(initial: TState): { ctx: ModelActionContext; entries: FallbackEntry[]; }; /** * Configuration for buildModel. */ export interface BuildModelConfig, TEffectsMap> { name: string; initial: TState; actions: (ctx: ModelActionContext) => TActionMap; effects?: (ctx: ModelEffectsContext>) => TEffectsMap; equals?: Equality; /** Parent domain - passed internally by domain.model() */ domain: Domain; } /** * Build a model from the domain.model() call. * This is the main entry point called from domain.ts. */ export declare function buildModel, TEffectsMap extends ModelEffectsMap>>(config: BuildModelConfig): ModelWithMethods; export {}; //# sourceMappingURL=model.d.ts.map