// Copyright (c) 2019 Gonzalo Müller Bravo. import type { Context, Element, } from 'react' export interface Dispatcher { (value: ACTION): void; } export interface Reducer { (prevState: STATE, action: ACTION): STATE; } export type NamedReducerValue = [STATE, Dispatcher] export interface NamedReducerProps { name: string; reducer: Reducer; initialState: STATE; children: Element; } export interface NamedReducerInterface { state: STATE; dispatch: Dispatcher; } declare export function NamedReducer(props: NamedReducerProps): Element declare export function useNamedReducer(name: string): NamedReducerInterface declare export function useReducerState(name: string): STATE declare export function useReducerDispatcher(name: string): Dispatcher declare export function useNamedReducerContext(name: string): Context>