import { ViewBase } from '../view-base'; import { Style } from '../../styling/style'; /** * Value specifying that Property should be set to its initial value. */ export declare const unsetValue: any; export interface PropertyOptions { readonly name: string; readonly defaultValue?: U; readonly affectsLayout?: boolean; readonly equalityComparer?: (x: U, y: U) => boolean; readonly valueChanged?: (target: T, oldValue: U, newValue: U) => void; readonly valueConverter?: (value: string) => U; } export interface CoerciblePropertyOptions extends PropertyOptions { readonly coerceValue: (t: T, u: U) => U; } export interface CssPropertyOptions extends PropertyOptions { readonly cssName: string; } export interface ShorthandPropertyOptions

{ readonly name: string; readonly cssName: string; readonly converter: (value: string | P) => [CssProperty | CssAnimationProperty, any][]; readonly getter: (this: Style) => string | P; } export interface CssAnimationPropertyOptions { readonly name: string; readonly cssName?: string; readonly defaultValue?: U; readonly equalityComparer?: (x: U, y: U) => boolean; readonly valueChanged?: (target: T, oldValue: U, newValue: U) => void; readonly valueConverter?: (value: string) => U; } export declare function _printUnregisteredProperties(): void; export declare function _getProperties(): Property[]; export declare function _getStyleProperties(): CssProperty[]; export declare function isCssVariable(property: string): boolean; export declare function isCssCalcExpression(value: string): boolean; export declare function isCssVariableExpression(value: string): boolean; export declare function _evaluateCssVariableExpression(view: ViewBase, cssName: string, value: string): string; export declare function _evaluateCssCalcExpression(value: string): any; export declare class Property implements TypedPropertyDescriptor, Property { private registered; readonly name: string; readonly key: symbol; readonly getDefault: symbol; readonly setNative: symbol; readonly defaultValueKey: symbol; readonly defaultValue: U; readonly nativeValueChange: (owner: T, value: U) => void; isStyleProperty: boolean; get: () => U; set: (value: U) => void; overrideHandlers: (options: PropertyOptions) => void; enumerable: boolean; configurable: boolean; constructor(options: PropertyOptions); register(cls: { prototype: T; }): void; isSet(instance: T): boolean; } export declare class CoercibleProperty extends Property implements CoercibleProperty { readonly coerce: (target: T) => void; constructor(options: CoerciblePropertyOptions); } export declare class InheritedProperty extends Property implements InheritedProperty { readonly sourceKey: symbol; readonly setInheritedValue: (value: U) => void; constructor(options: PropertyOptions); } export declare class CssProperty implements CssProperty { private registered; readonly name: string; readonly cssName: string; readonly cssLocalName: string; protected readonly cssValueDescriptor: PropertyDescriptor; protected readonly localValueDescriptor: PropertyDescriptor; isStyleProperty: boolean; readonly key: symbol; readonly getDefault: symbol; readonly setNative: symbol; readonly sourceKey: symbol; readonly defaultValueKey: symbol; readonly defaultValue: U; overrideHandlers: (options: CssPropertyOptions) => void; constructor(options: CssPropertyOptions); register(cls: { prototype: T; }): void; isSet(instance: T): boolean; } export declare class CssAnimationProperty implements CssAnimationProperty { readonly name: string; readonly cssName: string; readonly cssLocalName: string; readonly getDefault: symbol; readonly setNative: symbol; readonly register: (cls: { prototype: any; }) => void; readonly keyframe: string; readonly defaultValueKey: symbol; readonly key: symbol; private readonly source; readonly defaultValue: U; isStyleProperty: boolean; private static properties; _valueConverter?: (value: string) => any; constructor(options: CssAnimationPropertyOptions); _initDefaultNativeValue(target: T): void; static _getByCssName(name: string): CssAnimationProperty; static _getPropertyNames(): string[]; isSet(instance: T): boolean; } export declare class InheritedCssProperty extends CssProperty implements InheritedCssProperty { setInheritedValue: (value: U) => void; overrideHandlers: (options: CssPropertyOptions) => void; constructor(options: CssPropertyOptions); } export declare class ShorthandProperty implements ShorthandProperty { private registered; readonly key: symbol; readonly name: string; readonly cssName: string; readonly cssLocalName: string; protected readonly cssValueDescriptor: PropertyDescriptor; protected readonly localValueDescriptor: PropertyDescriptor; protected readonly propertyBagDescriptor: PropertyDescriptor; readonly sourceKey: symbol; constructor(options: ShorthandPropertyOptions

); register(cls: typeof Style): void; } export declare const initNativeView: any; export declare function applyPendingNativeSetters(view: ViewBase): void; export declare function applyAllNativeSetters(view: ViewBase): void; export declare function resetNativeView(view: ViewBase): void; export declare function clearInheritedProperties(view: ViewBase): void; export declare function resetCSSProperties(style: Style): void; export declare function propagateInheritableProperties(view: ViewBase, child: ViewBase): void; export declare function propagateInheritableCssProperties(parentStyle: Style, childStyle: Style): void; export declare function makeValidator(...values: T[]): (value: any) => value is T; export declare function makeParser(isValid: (value: any) => boolean, allowNumbers?: boolean): (value: any) => T; export declare function getSetProperties(view: ViewBase): [string, any][]; export declare function getComputedCssValues(view: ViewBase): [string, any][];