import { OnChanges, OnInit, SimpleChanges } from '@angular/core';
import { ControlValueAccessor, FormControl } from '@angular/forms';
import { MatFormFieldAppearance } from '@angular/material/form-field';
import { DisplayDensity } from '@metad/ocap-angular/core';
import { DataSettings, Dimension, FilterSelectionType, TimeGranularity } from '@metad/ocap-core';
import { NgmSmartFilterService } from '../../smart-filter.service';
import * as i0 from "@angular/core";
export declare class NgmMemberDatepickerComponent implements OnInit, OnChanges, ControlValueAccessor {
    FilterType: typeof FilterSelectionType;
    TimeGranularity: typeof TimeGranularity;
    TIME_GRANULARITY_SEQUENCES: {
        0: TimeGranularity[];
        1: TimeGranularity[];
        2: TimeGranularity[];
        3: TimeGranularity[];
    };
    private coreService;
    dataService: NgmSmartFilterService;
    label: string;
    placeholder: string;
    appearance: MatFormFieldAppearance;
    displayDensity: DisplayDensity;
    dataSettings: DataSettings;
    readonly dimension: import("@angular/core").InputSignal<Dimension>;
    readonly granularity: import("@angular/core").ModelSignal<TimeGranularity>;
    private _date;
    set date(dat: Date[]);
    get date(): Date[];
    granularitySequence: number;
    defaultValue: string;
    selectionType: FilterSelectionType;
    disabled: boolean;
    formatter: string;
    readonly dateChange: import("@angular/core").OutputEmitterRef<Date[]>;
    readonly entityType: import("@angular/core").Signal<import("@metad/ocap-core").EntityType>;
    readonly property: import("@angular/core").Signal<import("@metad/ocap-core").EntityProperty>;
    readonly hierarchy: import("@angular/core").Signal<import("@metad/ocap-core").PropertyHierarchy>;
    fromDateControl: FormControl<any>;
    dateControl: FormControl<any>;
    date1: Date;
    date2: Date;
    propertyHierarchy: Dimension;
    private _onChange;
    /**
    |--------------------------------------------------------------------------
    | Subscriptions (effect)
    |--------------------------------------------------------------------------
    */
    private svSubscriber;
    private srSubscriber;
    constructor();
    ngOnInit(): void;
    ngOnChanges({ dataSettings, dimension, defaultValue }: SimpleChanges): void;
    writeValue(obj: any): void;
    registerOnChange(fn: any): void;
    registerOnTouched(fn: any): void;
    setDisabledState?(isDisabled: boolean): void;
    dateRangeChanged(event: any): void;
    dateChanged(event: any): void;
    date1Changed(event: any): void;
    date2Changed(event: any): void;
    onDateRangeChange(): void;
    onChange(event: any): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<NgmMemberDatepickerComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<NgmMemberDatepickerComponent, "ngm-member-datepicker", never, { "label": { "alias": "label"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "appearance": { "alias": "appearance"; "required": false; }; "displayDensity": { "alias": "displayDensity"; "required": false; }; "dataSettings": { "alias": "dataSettings"; "required": false; }; "dimension": { "alias": "dimension"; "required": false; "isSignal": true; }; "granularity": { "alias": "granularity"; "required": false; "isSignal": true; }; "date": { "alias": "date"; "required": false; }; "granularitySequence": { "alias": "granularitySequence"; "required": false; }; "defaultValue": { "alias": "defaultValue"; "required": false; }; "selectionType": { "alias": "selectionType"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "formatter": { "alias": "formatter"; "required": false; }; }, { "granularity": "granularityChange"; "dateChange": "dateChange"; }, never, never, false, never>;
}
