import { type JCalProp } from './parse';
import { ICalComponent } from './component';
export declare class ICalProperty {
    jCal: JCalProp;
    isDecorated: boolean;
    isMultiValue: boolean;
    isStructuredValue: boolean;
    private parent?;
    private values?;
    constructor(jCal: JCalProp | string, parent?: ICalComponent);
    /**
     * The design set for this property, e.g. icalendar vs vcard
     */
    private get designSet();
    /**
     * Get the default type based on this property's name.
     */
    getDefaultType(): string;
    /**
     * Updates the type metadata from the current jCal type and design set.
     */
    private updateType;
    getFirstValue(): string | null;
    /**
     * Gets a parameter on the property.
     * @param name Parameter name (lowercase)
     */
    getParameter(name: string): string | undefined;
    /**
     * Hydrate a single value. The act of hydrating means turning the raw jCal
     * value into a potentially wrapped object
     * @param index The index of the value to hydrate
     */
    private hydrateValue;
    private decorate;
}
