import { CSSValue } from './syntax/parser'; import { CSSTypes } from './types/index'; export declare enum PropertyDescriptorParsingType { VALUE = 0, LIST = 1, IDENT_VALUE = 2, TYPE_VALUE = 3, TOKEN_VALUE = 4 } export interface IPropertyDescriptor { name: string; type: PropertyDescriptorParsingType; initialValue: string; prefix: boolean; } export interface IPropertyIdentValueDescriptor extends IPropertyDescriptor { type: PropertyDescriptorParsingType.IDENT_VALUE; parse: (token: string) => T; } export interface IPropertyTypeValueDescriptor extends IPropertyDescriptor { type: PropertyDescriptorParsingType.TYPE_VALUE; format: CSSTypes; } export interface IPropertyValueDescriptor extends IPropertyDescriptor { type: PropertyDescriptorParsingType.VALUE; parse: (token: CSSValue) => T; } export interface IPropertyListDescriptor extends IPropertyDescriptor { type: PropertyDescriptorParsingType.LIST; parse: (tokens: CSSValue[]) => T; } export interface IPropertyTokenValueDescriptor extends IPropertyDescriptor { type: PropertyDescriptorParsingType.TOKEN_VALUE; } export declare type CSSPropertyDescriptor = IPropertyValueDescriptor | IPropertyListDescriptor | IPropertyIdentValueDescriptor | IPropertyTypeValueDescriptor | IPropertyTokenValueDescriptor;