import { ChangeDetectorRef, EventEmitter, OnChanges, OnDestroy, OnInit, SimpleChanges } from "@angular/core";
import { FormBuilder, FormGroup } from "@angular/forms";
import { EventBus, IDataField, IEvent } from "@nova-ui/bits";
import { ProportionalWidgetChartTypes } from "../../../../../components/proportional-widget/types";
import { IFormatter, IFormatterConfigurator, IFormatterDefinition } from "../../../../../components/types";
import { IProportionalDonutContentAggregator, IProportionalDonutContentAggregatorDefinition } from "../../../../../functions/proportional-aggregators/types";
import { ProportionalContentAggregatorsRegistryService } from "../../../../../services/proportional-content-aggregators-registry.service";
import { ProportionalDonutContentFormattersRegistryService } from "../../../../../services/table-formatter-registry.service";
import { IHasChangeDetector } from "../../../../../types";
import { IAggregatorConfiguratorProperties } from "../aggregators-configurators/aggregator-configurator/aggregator-configurator.component";
import * as i0 from "@angular/core";
export declare class DonutContentConfigurationComponent implements OnInit, OnChanges, IHasChangeDetector, OnDestroy {
    private formBuilder;
    changeDetector: ChangeDetectorRef;
    private eventBus;
    private contentFormattersRegistry;
    private aggregatorRegistry;
    static lateLoadKey: string;
    chartType: ProportionalWidgetChartTypes;
    formatter: IFormatter;
    aggregator: IProportionalDonutContentAggregator;
    formReady: EventEmitter<any>;
    shown: boolean;
    form: FormGroup<{
        formatter: FormGroup<{
            componentType: import("@angular/forms").FormControl<string | null>;
            properties: import("@angular/forms").FormControl<null>;
        }>;
        aggregator: FormGroup<{
            aggregatorType: import("@angular/forms").FormControl<string | null>;
            properties: import("@angular/forms").FormControl<null>;
        }>;
    }>;
    formatters: IFormatterDefinition[];
    aggregators: IProportionalDonutContentAggregatorDefinition[];
    dataFields: IDataField[];
    currentFormatterDefinition: IFormatterDefinition | undefined;
    formatterConfiguratorProps: IFormatterConfigurator;
    currentAggregatorDefinition: IProportionalDonutContentAggregatorDefinition | undefined;
    aggregatorConfiguratorProps: IAggregatorConfiguratorProperties;
    private readonly destroy$;
    constructor(formBuilder: FormBuilder, changeDetector: ChangeDetectorRef, eventBus: EventBus<IEvent>, contentFormattersRegistry: ProportionalDonutContentFormattersRegistryService, aggregatorRegistry: ProportionalContentAggregatorsRegistryService);
    ngOnInit(): void;
    ngOnChanges(changes: SimpleChanges): void;
    ngOnDestroy(): void;
    onFormReady(formControlName: string, form: FormGroup): void;
    get subtitleText(): string;
    private setFromRegistry;
    private watchFormChanges;
    private updateAggregatorConfiguratorProps;
    static ɵfac: i0.ɵɵFactoryDeclaration<DonutContentConfigurationComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<DonutContentConfigurationComponent, "nui-donut-content-configuration", never, { "chartType": { "alias": "chartType"; "required": false; }; "formatter": { "alias": "formatter"; "required": false; }; "aggregator": { "alias": "aggregator"; "required": false; }; }, { "formReady": "formReady"; }, never, never, false, never>;
}
