import { ReactConfiguration } from './uiconfigs/reactConfiguration';
import { UIConfiguration } from './uiconfigs/uIconfiguration';
export interface AEMTouchUIDialog {
    componentName: string;
    componentGroup: string;
    componentDescription: string;
    componentPath: string;
    title: string;
    resourceSuperType?: string;
    tabs: TouchUIDialogTab[];
    analytics?: TouchUIAnalytics;
    buildConfigForAem?: boolean;
    buildComponent?: boolean;
    overwriteAllFilesOnBuild?: boolean;
    noDecoration?: boolean;
    isContainer?: boolean;
    tag?: string;
    css?: string;
    noCqDesignDialog?: boolean;
    fullyQualifiedClassName?: string;
}
export interface TouchUIDialogTab {
    title: string;
    fields: TouchUIDialogField[];
}
export interface TouchUIDialogField {
    label: string;
    description?: string;
    databaseName: string;
    type: TouchUIField;
    isRequired?: boolean;
    isDisabled?: boolean;
    options?: TouchUIFieldOption[];
    multifieldOptions?: TouchUIDialogField[];
    maxLength?: number;
    max?: number;
    min?: number;
    multifieldtype?: TouchUIField;
    javaScriptHandler?: string;
    uncheckedValue?: string;
    checked?: string;
    value?: string;
}
export interface TouchUIFieldOption {
    name: string;
    value: string | number;
}
export interface TouchUIAnalytics {
    events?: string[] | string;
    values?: string[] | string;
}
export declare enum TouchUIField {
    Path = "pathfield",
    Text = "textfield",
    RichText = "richtext",
    TextArea = "textarea",
    Checkbox = "select",
    Dropwdown = "selection",
    Number = "numberfield",
    Multifield = "multifield",
    Imagefield = "imagefield",
    Tag = "tag",
    HiddenField = "hiddenField"
}
export declare class ComponentGenerator {
    dialogConfig: AEMTouchUIDialog;
    uiConfiguration: UIConfiguration;
    constructor(dialogConfig: AEMTouchUIDialog, uiConfiguration: UIConfiguration);
    getAnalytics(): string | null;
    getAEMConfig(): string;
    getCqConfig(): string;
    getCqDesignDialog(): string;
    getDialog(): string;
    getHtmlTag(): string;
    buildTabs(): string;
    getTemplate(field: TouchUIDialogField): string;
    getField(field: TouchUIDialogField, i: number): string;
    getOption(option: TouchUIFieldOption, i: number): string;
    getMultiField(field: TouchUIDialogField): TouchUIField | "FIELD-TYPE-ERROR";
    getMultiFieldNested(field: TouchUIDialogField): string;
    getAnalyticsElements(type: 'events' | 'values'): string;
    getReactTemplate(reactConfig: ReactConfiguration): string;
    getReactIndexTemplate(reactConfig: ReactConfiguration): string;
    getReactComponentTemplate(reactConfig: ReactConfiguration): string;
    getReactScssTemplate(): string;
    getSightlyTemplate(): string;
    writeFilesToAEM(): void;
    makeFolder(folderPath: string): void;
    writeDialog(): void;
    writeHtmlTag(): void;
    writeAnalytics(): void;
    writeAEMConfig(): void;
    writeCqConfig(): void;
    writeCqDesignDialog(): void;
    writeReactTemplate(reactConfig: ReactConfiguration): void;
    writeReactIndex(reactConfig: ReactConfiguration): void;
    writeReactComponent(reactConfig: ReactConfiguration): void;
    writeReactScss(reactConfig: ReactConfiguration): void;
    writeSightlyTemplate(): void;
}
//# sourceMappingURL=componentGenerator.d.ts.map