import { ITemplateReducerState, TemplateReducerFunction } from "../api/common";
import { IElementState, ViewerAction } from '../actions/defs';
export declare const TEMPLATE_INITIAL_STATE: ITemplateReducerState;
/**
 * Checks if the given payload is an element state
 *
 * @export
 * @param {*} args
 * @returns {args is IElementState}
 */
export declare function isElementState(args: any): args is IElementState;
/**
 * Installs a custom template reducer function. This is generally used by viewer templates
 * which need to respond to template-related actions in a way that is unique to the template
 *
 * @export
 * @param {ReducerFunction<ITemplateReducerState>} func
 */
export declare function setCustomTemplateReducer(func: TemplateReducerFunction): void;
export declare function templateReducer(origState: ITemplateReducerState | undefined, action: ViewerAction): ITemplateReducerState;
