import { OnInit } from '@angular/core';
import { FormArray, FormBuilder, FormControl, FormGroup } from '@angular/forms';
import { NgmOcapCoreService } from '@metad/ocap-angular/core';
import { DataSettings, EntityType, Property, TimeRange, TimeRangesSlicer } from '@metad/ocap-core';
import { BehaviorSubject, Observable } from 'rxjs';
import * as i0 from "@angular/core";
/**
 * 时间维度的 Filter 编辑界面
 */
export declare class NgmTimeFilterEditorComponent implements OnInit {
    private coreService;
    private formBuilder;
    isDialogContainer: boolean;
    data?: {
        dataSettings: DataSettings;
        entityType: EntityType;
        slicer: TimeRangesSlicer;
        forControl: boolean;
    };
    private _dialogRef?;
    get entityType(): EntityType;
    set entityType(value: EntityType);
    protected entityType$: BehaviorSubject<EntityType>;
    formGroup: FormGroup<{
        dimension: FormGroup<{
            dimension: FormControl<string>;
            hierarchy: FormControl<string>;
        }>;
        currentDate: FormControl<any>;
        ranges: FormArray<any>;
        allowModifySelections: FormControl<boolean>;
        selctionType: FormControl<any>;
    }>;
    property$: Observable<Property>;
    hierarchies$: Observable<import("@metad/ocap-core").PropertyHierarchy[]>;
    forControl: boolean;
    constructor(coreService: NgmOcapCoreService, formBuilder: FormBuilder);
    ngOnInit(): void;
    buildRangeForm(range?: TimeRange): FormGroup<{
        type: FormControl<any>;
        granularity: FormControl<any>;
        current: FormGroup<{
            direction: FormControl<any>;
            granularity: FormControl<any>;
            amount: FormControl<any>;
        }>;
        lookBack: FormControl<any>;
        lookAhead: FormControl<any>;
        currentPeriod: FormControl<any>;
        formatter: FormControl<any>;
        result: FormControl<any>;
    }>;
    get ranges(): FormArray<any>;
    addRange(event: any): void;
    onApply(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<NgmTimeFilterEditorComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<NgmTimeFilterEditorComponent, "ngm-time-filter-editor", never, { "entityType": { "alias": "entityType"; "required": false; }; }, {}, never, never, true, never>;
}
