import { NgZone, Signal } from '@angular/core'; import { OperatorFunction, Observable } from 'rxjs'; declare function runInZone(zone: NgZone): OperatorFunction; type ExtractObservableValue = T extends Observable ? V : T; type ParametersWithAppend any, NextArg> = Fn extends (...args: infer PrevArg) => any ? [...PrevArg, NextArg] : never; type SuccessFn = (result: R) => void; type ErrorFn = (error: Error) => void; declare const BEHAVIOR: unique symbol; type Behavior

, R> = (...args: P) => R & { [BEHAVIOR]: true; }; interface BehaviorContext { success?: SuccessFn; error?: ErrorFn; } interface AsyncBehavior { loadingDone: Signal; loading: Signal; state: Signal<'pending' | 'loading' | 'success' | 'error'>; error?: Signal; value?: Signal; execute(success?: SuccessFn, error?: ErrorFn): void; execute(context: BehaviorContext): void; execute(successOrContext: SuccessFn | BehaviorContext, error?: ErrorFn): void; } declare function asyncBehavior Observable = (...args: any) => Observable>(action: A, context?: BehaviorContext>>): Behavior, AsyncBehavior>>> & AsyncBehavior>>; interface ActionBehavior { saving: Signal; execute(success?: SuccessFn, error?: ErrorFn): Observable | undefined; execute(context: BehaviorContext): Observable | undefined; execute(successOrContext: SuccessFn | BehaviorContext, error?: ErrorFn): Observable | undefined; } declare function actionBehavior Observable = (...args: any) => Observable>(action: A, context?: BehaviorContext>>): Behavior, ActionBehavior>>> & ActionBehavior>>; type DefaultErrorHandler = (error: Error) => void; declare function setDefaultErrorHandler(defaultErrorHandler: DefaultErrorHandler): void; declare function getDefaultErrorHandler(): DefaultErrorHandler; export { actionBehavior, asyncBehavior, getDefaultErrorHandler, runInZone, setDefaultErrorHandler }; export type { ActionBehavior, AsyncBehavior, Behavior, BehaviorContext, DefaultErrorHandler, ErrorFn, ExtractObservableValue, ParametersWithAppend, SuccessFn };