import { MediaTypePropertyBuilder } from "./mediaTypePropertyBuilder";
import { MediaTypeContainerBuilder } from "./mediaTypeContainerBuilder";
import { MediaTypeAllowedMediaTypeBuilder } from "./mediaTypeAllowedMediaTypeBuilder";
import { MediaTypeCompositionBuilder } from "./mediaTypeCompositionBuilder";
export declare class MediaTypeBuilder {
    alias: string;
    name: string;
    description: string;
    icon: string;
    allowedAsRoot: boolean;
    variesByCulture: boolean;
    variesBySegment: boolean;
    collectionId: string;
    isElement: boolean;
    mediaTypePropertyBuilder: MediaTypePropertyBuilder[];
    mediaTypeContainerBuilder: MediaTypeContainerBuilder[];
    mediaTypeAllowedMediaTypeBuilder: MediaTypeAllowedMediaTypeBuilder[];
    mediaTypeCompositionBuilder: MediaTypeCompositionBuilder[];
    folderId: string;
    id: string;
    constructor();
    withAlias(alias: string): this;
    withName(name: string): this;
    withDescription(description: string): this;
    withIcon(icon: string): this;
    withAllowedAsRoot(allowedAsRoot: boolean): this;
    withVariesByCulture(variesByCulture: boolean): this;
    withVariesBySegment(variesBySegment: boolean): this;
    withIsElement(isElement: boolean): this;
    addProperty(): MediaTypePropertyBuilder;
    addContainer(): MediaTypeContainerBuilder;
    addAllowedMediaType(): MediaTypeAllowedMediaTypeBuilder;
    addComposition(): MediaTypeCompositionBuilder;
    withId(id: string): this;
    build(): {
        alias: string;
        name: string;
        description: string;
        icon: string;
        allowedAsRoot: boolean;
        variesByCulture: boolean;
        variesBySegment: boolean;
        collection: {
            id: string;
        } | null;
        isElement: boolean;
        properties: {
            id: string;
            container: {
                id: string | null;
            };
            sortOrder: number;
            alias: string;
            name: string;
            description: string;
            dataType: {
                id: string | null;
            };
            variesByCulture: boolean;
            variesBySegment: boolean;
            validation: {
                mandatory: boolean;
                mandatoryMessage: string;
                regEx: string;
                regExMessage: string;
            };
            appearance: {
                labelOnTop: boolean;
            };
        }[];
        containers: {
            id: string | null;
            parent: {
                id: string;
            } | null;
            name: string;
            type: string;
            sortOrder: number;
        }[];
        allowedMediaTypes: {
            mediaType: {
                id: string | null;
            };
            sortOrder: number;
        }[];
        compositions: {
            mediaType: {
                id: string | null;
            };
            compositionType: string;
        }[];
        id: string;
        folder: {
            id: string;
        } | null;
    };
}
