import { Observable } from 'rxjs'; import { Action, ActionCreator } from '@ngrx/store'; import { CreateEffectMetadata, EffectConfig, EffectMetadata, FunctionalEffect } from './models'; type DispatchType = T extends { dispatch: infer U; } ? U : true; type ObservableType = T extends false ? OriginalType : Action; type EffectResult = Observable | ((...args: any[]) => Observable); type ConditionallyDisallowActionCreator = DT extends false ? unknown : Result extends EffectResult ? OT extends ActionCreator ? 'ActionCreator cannot be dispatched. Did you forget to call the action creator function?' : unknown : unknown; export declare function createEffect, OTP, R extends EffectResult, OT extends ObservableType>(source: () => R & ConditionallyDisallowActionCreator, config?: C): R & CreateEffectMetadata; export declare function createEffect Observable>(source: Source, config: EffectConfig & { functional: true; dispatch: false; }): FunctionalEffect; export declare function createEffect Observable>(source: Source & ConditionallyDisallowActionCreator>, config: EffectConfig & { functional: true; dispatch?: true; }): FunctionalEffect; export declare function getCreateEffectMetadata>(instance: T): EffectMetadata[]; export {};