///
import Period = require("../unit/Period");
import ATParser = require('./AttributeTemplateParser');
export declare type Callback = (period: Period.Period) => void;
export interface ParserOptions extends ATParser.ATPOptions {
}
/**
* A parser takes a set of DOM elements and creates a function that updates those elements to represent
* a given countdown period. This function should be repeatably callable so it can be reused.
*/
export interface Parser {
/**
* Create an updater function, this function takes a given Period of time that has to expire and updates
* its internal state and external representation accordingly.
*
* The library will attempt to limit invocations of the callback to cases where the Period is different from the
* previous period.
*
* @param {Array} roots root elements of the DOM that needs to be updated by this countdown.
*/
build(roots: ArrayLikeShim): Callback;
}