import { OnChanges, OnDestroy, SimpleChanges, TemplateRef, ViewContainerRef } from '@angular/core'; interface Action { type: string; payload: any; } declare type Reducer = (state: T, action: Action) => T; interface UseReducerImplicitContext { state: T; dispatch: (action: Action) => T; reducer: Reducer; detectChanges: Function; } interface UseReducerContext { $implicit: UseReducerImplicitContext; } export declare class UseReducerDirective implements OnChanges, OnDestroy { private templateRef; private vcr; useReducerInit: Reducer; useReducerWith: any; useReducerAnd: Action; private context; private embeddedViewRef; constructor(templateRef: TemplateRef, vcr: ViewContainerRef); ngOnChanges(changes: SimpleChanges): void; ngOnDestroy(): void; } export {};