import { EventEmitter, OnChanges, SimpleChanges } from '@angular/core';
import { ThemePalette } from '@angular/material/core';
import { MatSliderDragEvent } from '@angular/material/slider';
import { NgmAppearance } from '@metad/ocap-angular/core';
import { DataSettings, DisplayBehaviour, FilterSelectionType, IMember, ISlicer, ParameterControlEnum, ParameterProperty } from '@metad/ocap-core';
import * as i0 from "@angular/core";
export interface ParameterOptions {
    /**
     * Single or multiple selection of parameter's members
     */
    selectionType?: FilterSelectionType;
    /**
     * Use slider component for number type input parameter
     */
    slider?: boolean;
    sliderStep?: number;
    sliderMin?: number;
    sliderMax?: number;
    showThumbLabel?: boolean;
    showTickMarks?: boolean;
    sliderColor?: ThemePalette;
}
export declare class NgmParameterComponent implements OnChanges {
    ParameterControlEnum: typeof ParameterControlEnum;
    private dsCoreService;
    get dataSettings(): DataSettings;
    set dataSettings(value: DataSettings);
    private dataSettings$;
    get parameter(): ParameterProperty;
    set parameter(value: ParameterProperty);
    private parameter$;
    displayBehaviour: DisplayBehaviour;
    options: ParameterOptions;
    appearance: NgmAppearance;
    parameterChange: EventEmitter<ParameterProperty>;
    get multiple(): boolean;
    get paramType(): ParameterControlEnum;
    get availableMembers(): IMember[];
    get members(): import("@metad/ocap-core").Member[];
    set members(members: import("@metad/ocap-core").Member[]);
    private readonly dataSource$;
    readonly dimension$: import("rxjs").Observable<Partial<ParameterProperty>>;
    readonly members$: import("rxjs").Observable<IMember[]>;
    readonly availableMembers$: import("rxjs").Observable<IMember[]>;
    readonly variableProperty: import("@angular/core").Signal<import("@metad/ocap-core").VariableProperty>;
    slicer: {};
    parameterValue: any;
    private changeParameter$;
    private changeSub;
    ngOnChanges({ parameter }: SimpleChanges): void;
    compareWith(a: IMember, b: IMember): boolean;
    updateParameterValue(event: any): void;
    changeParameter(): void;
    onSlicerChange(slicer: ISlicer): void;
    onSlicerEnd(event: MatSliderDragEvent): void;
    onBlur(event: FocusEvent): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<NgmParameterComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<NgmParameterComponent, "ngm-parameter", never, { "dataSettings": { "alias": "dataSettings"; "required": false; }; "parameter": { "alias": "parameter"; "required": false; }; "displayBehaviour": { "alias": "displayBehaviour"; "required": false; }; "options": { "alias": "options"; "required": false; }; "appearance": { "alias": "appearance"; "required": false; }; }, { "parameterChange": "parameterChange"; }, never, never, true, never>;
}
