import { INumericKeyed } from '../../collections/collection';
import { Dictionary } from '../../collections';
import { ContainedComponentField } from './contained-component-field';
import { ContainedField } from './contained-field';
import { ContainedGroupField } from './contained-group-field';
import { ContainedSimpleField } from './contained-simple-field';
import { ContainedSetType } from '../dict-primitive';
export declare abstract class ContainedFieldSet {
    readonly type: ContainedSetType;
    readonly name: string;
    readonly category: string;
    readonly abbreviation: string;
    readonly description: string;
    readonly groups: Dictionary<ContainedGroupField>;
    readonly components: Dictionary<ContainedComponentField>;
    readonly simple: Dictionary<ContainedSimpleField>;
    readonly fields: ContainedField[];
    readonly containedTag: INumericKeyed<boolean>;
    readonly containedLength: INumericKeyed<boolean>;
    readonly localTag: INumericKeyed<ContainedSimpleField>;
    readonly localRequired: INumericKeyed<ContainedSimpleField>;
    readonly tagToSimple: INumericKeyed<ContainedSimpleField>;
    readonly tagToField: INumericKeyed<ContainedField>;
    readonly localNameToField: Dictionary<ContainedField>;
    readonly nameToLocalAttribute: Dictionary<ContainedSimpleField>;
    readonly localAttribute: ContainedSimpleField[];
    firstSimple: ContainedSimpleField;
    containsRaw: boolean;
    protected constructor(type: ContainedSetType, name: string, category: string, abbreviation: string, description: string);
    toString(): string;
    abstract getPrefix(): string;
    add(field: ContainedField): void;
    private addUpdate;
    private addLocalSimple;
    private addContained;
    private addAllFields;
    private addGroupFieldDef;
    private addComponentFieldDef;
    private keys;
    private mapAllBelow;
    private addSimpleFieldDef;
}
