import { DataAnnotation } from './DataAnnotation';
import { Property } from './Property';
import { Record } from './Record';
import { TypeNames } from './types';
/**
 * The implementation of {@link Record}.
 * Represents a 'Record' or set of {@link Property} (names and values).
 * An Record may also have {@link Annotation}s (style annotations) that apply to the whole 'record'
 */
export declare class RecordImpl implements Record {
    readonly id: string;
    readonly properties: Property[];
    readonly annotations: DataAnnotation[];
    readonly type: string;
    constructor(id: string, properties: Property[], annotations: DataAnnotation[], type: string);
    annotationsAtName(propName: string): DataAnnotation[];
    afterEffects(after: Record): Record;
    readonly backgroundColor: string;
    backgroundColorFor(propName: string): string;
    readonly foregroundColor: string;
    foregroundColorFor(propName: string): string;
    readonly imageName: string;
    imageNameFor(propName: string): string;
    readonly imagePlacement: string;
    imagePlacementFor(propName: string): string;
    readonly isBoldText: boolean;
    isBoldTextFor(propName: string): boolean;
    readonly isItalicText: boolean;
    isItalicTextFor(propName: string): boolean;
    readonly isPlacementCenter: boolean;
    isPlacementCenterFor(propName: string): boolean;
    readonly isPlacementLeft: boolean;
    isPlacementLeftFor(propName: string): boolean;
    readonly isPlacementRight: boolean;
    isPlacementRightFor(propName: string): boolean;
    readonly isPlacementStretchUnder: boolean;
    isPlacementStretchUnderFor(propName: string): boolean;
    readonly isPlacementUnder: boolean;
    isPlacementUnderFor(propName: string): boolean;
    readonly isUnderline: boolean;
    isUnderlineFor(propName: string): boolean;
    readonly overrideText: string;
    overrideTextFor(propName: string): string;
    propAtIndex(index: number): Property;
    propAtName(propName: string): Property;
    readonly propCount: number;
    readonly propNames: string[];
    readonly propValues: any[];
    readonly tipText: string;
    tipTextFor(propName: string): string;
    toJSON(): {
        id: string;
        properties: Property[];
        type: TypeNames;
    };
    toRecord(): Record;
    valueAtName(propName: string): any;
}
