import { EventEmitter } from '@angular/core'; /** * Simple function interface for persers like: * * @see https://github.com/angular/components/tree/master/src/cdk/coercion */ export declare type AttributeParser = (source: any) => T; /** * Simple class to help the creation of bidi binding attributes. * As typescript and angular doesn't enfore types this class helps to handle it. * * Instead of: * ```ts * @Output('valueChange') value: EventEmitter = new EventEmitter(); * @Input('value') value: number = 1; // parsing code removed * ``` * * ```ts * _value = new Attribute(this.yChange, NUMBER_PARSER, 1); * @Output('valueChange') valueChange = _value.eventEmitter; * @Input('value') set value(value: number) { this._value.value = value; } * get value(): number {return this._value.value; } * ``` * * @see https://github.com/angular/components/tree/master/src/cdk/coercion */ export declare class Attribute { private _parser; private _event; readonly eventEmitter: EventEmitter; private _value; value: T; constructor(parser: AttributeParser, value?: T); complete(): void; toString(): string; } export declare const NOP_PARSER: AttributeParser; export declare const STRING_PARSER: AttributeParser; /** * Converts the given value to a number * https://flaviocopes.com/how-to-convert-string-to-number-javascript/ * @param source input value */ export declare const NUMBER_PARSER: AttributeParser; /** * Like the NUMBER_PARSER but always returns integers. * @param source any value to parse */ export declare const INT_PARSER: AttributeParser;