import { EventEmitter, OnDestroy, OnInit } from '@angular/core';
import { AbstractControl, ControlValueAccessor, FormBuilder, FormControl } from '@angular/forms';
import { DocumentService } from '@valtimo/document';
import { ListItem } from 'carbon-components-angular';
import { BehaviorSubject, Observable } from 'rxjs';
import { ValuePathItem, ValuePathType, ValuePathSelectorNotation, ValuePathSelectorPrefix } from '../../models';
import { ValuePathSelectorService } from '../../services';
import * as i0 from "@angular/core";
export declare class ValuePathSelectorComponent implements OnInit, OnDestroy, ControlValueAccessor {
    private readonly valuePathSelectorService;
    private readonly formBuilder;
    private readonly documentService;
    private _showMargin;
    private _showMarginLg;
    private _showMarginXl;
    onBlur(): void;
    readonly formGroup: import("@angular/forms").FormGroup<{
        selectedPath: FormControl<string>;
    }>;
    get selectedPath(): AbstractControl<string>;
    private _onChangeFunction;
    private _onTouchedFunction;
    get _selectedPath$(): Observable<string>;
    name: string;
    appendInline: boolean;
    set margin(value: boolean);
    set marginLg(value: boolean);
    set marginXl(value: boolean);
    set disabled(value: boolean);
    set caseDefinitionKey(value: string);
    set caseDefinitionVersionTag(value: string);
    set prefixes(value: ValuePathSelectorPrefix[]);
    label: string;
    tooltip: string;
    required: boolean;
    showCaseDefinitionSelector: boolean;
    notation: ValuePathSelectorNotation;
    set defaultValue(value: string);
    private readonly _type$;
    set type(value: ValuePathType);
    private readonly _parentItem$;
    set parentItem(value: ValuePathItem | null);
    valueChangeEvent: EventEmitter<string>;
    collectionSelected: EventEmitter<ValuePathItem>;
    private readonly _caseDefinitionKeySubject$;
    private get _caseDefinitionKey$();
    private readonly _caseDefinitionVersionTag$;
    private readonly _prefixes$;
    private readonly _inputMode$;
    inputModeIsDropdown$: Observable<boolean>;
    readonly loadingValuePathItems$: BehaviorSubject<boolean>;
    readonly disabled$: BehaviorSubject<boolean>;
    private _cachedOptions;
    valuePathListItems$: Observable<ListItem[]>;
    readonly loadingCaseDefinitionItems$: BehaviorSubject<boolean>;
    readonly caseDefinitionListItems$: Observable<ListItem[]>;
    private readonly _subscriptions;
    constructor(valuePathSelectorService: ValuePathSelectorService, formBuilder: FormBuilder, documentService: DocumentService);
    ngOnInit(): void;
    ngOnDestroy(): void;
    writeValue(value: string): void;
    registerOnChange(fn: (value: string) => void): void;
    registerOnTouched(fn: () => void): void;
    onBlurEvent(): void;
    setDisabledState(isDisabled: boolean): void;
    onPathSelected(event: {
        item: {
            content: string;
        } & ValuePathItem;
    }): void;
    onCaseDefinitionSelected(event: {
        item: {
            id: string;
        };
    }): void;
    onInputModeChange(toDropdownMode: boolean): void;
    private getFormattedPath;
    static ɵfac: i0.ɵɵFactoryDeclaration<ValuePathSelectorComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<ValuePathSelectorComponent, "valtimo-value-path-selector", never, { "name": { "alias": "name"; "required": false; }; "appendInline": { "alias": "appendInline"; "required": false; }; "margin": { "alias": "margin"; "required": false; }; "marginLg": { "alias": "marginLg"; "required": false; }; "marginXl": { "alias": "marginXl"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "caseDefinitionKey": { "alias": "caseDefinitionKey"; "required": false; }; "caseDefinitionVersionTag": { "alias": "caseDefinitionVersionTag"; "required": false; }; "prefixes": { "alias": "prefixes"; "required": false; }; "label": { "alias": "label"; "required": false; }; "tooltip": { "alias": "tooltip"; "required": false; }; "required": { "alias": "required"; "required": false; }; "showCaseDefinitionSelector": { "alias": "showCaseDefinitionSelector"; "required": false; }; "notation": { "alias": "notation"; "required": false; }; "defaultValue": { "alias": "defaultValue"; "required": false; }; "type": { "alias": "type"; "required": false; }; "parentItem": { "alias": "parentItem"; "required": false; }; }, { "valueChangeEvent": "valueChangeEvent"; "collectionSelected": "collectionSelected"; }, never, never, true, never>;
}
//# sourceMappingURL=value-path-selector.component.d.ts.map