import { Observable } from 'rxjs'; /** * Configures an effect created by `createEffect`. */ export interface EffectConfig { /** * Determines if the action emitted by the effect is dispatched to the store. * If false, effect does not need to return type `Observable`. */ dispatch?: boolean; /** * Determines whether the functional effect will be created. * If true, the effect can be created outside the effects class. */ functional?: boolean; /** * Determines if the effect will be resubscribed to if an error occurs in the main actions stream. */ useEffectsErrorHandler?: boolean; } export declare const DEFAULT_EFFECT_CONFIG: Readonly>; export declare const CREATE_EFFECT_METADATA_KEY = "__@ngrx/effects_create__"; export interface CreateEffectMetadata { [CREATE_EFFECT_METADATA_KEY]: EffectConfig; } export interface FunctionalCreateEffectMetadata extends CreateEffectMetadata { [CREATE_EFFECT_METADATA_KEY]: EffectConfig & { functional: true; }; } export declare type FunctionalEffect Observable = () => Observable> = Source & FunctionalCreateEffectMetadata; export declare type EffectPropertyKey> = Exclude; export interface EffectMetadata> extends Required { propertyName: EffectPropertyKey; } export declare type EffectsMetadata> = { [Key in EffectPropertyKey]?: EffectConfig; };