import { OnChanges, OnDestroy } from '@angular/core';
import { ControlValueAccessor, Validators } from '@angular/forms';
import { IconService } from 'carbon-components-angular';
import { BehaviorSubject, Observable } from 'rxjs';
import { ModalMode } from '@valtimo/shared';
import * as i0 from "@angular/core";
export declare class AutoKeyInputComponent implements ControlValueAccessor, Validators, OnChanges, OnDestroy {
    private readonly iconService;
    labelTranslationKey: string;
    placeholderTranslationKey: string;
    protected readonly testIds: {
        readonly input: "autoKeyInput";
        readonly editButton: "autoKeyEditButton";
    };
    private readonly _mode$;
    set mode(value: ModalMode);
    get mode$(): Observable<ModalMode>;
    private readonly _usedKeys$;
    set usedKeys(value: string[]);
    private readonly _sourceText$;
    set sourceText(value: string);
    $disabled: import("@angular/core").WritableSignal<boolean>;
    value: string;
    readonly editingKey$: BehaviorSubject<boolean>;
    private duplicateInitialized;
    readonly idError$: BehaviorSubject<string>;
    private onChange;
    onTouched: () => void;
    onValidatorChange: () => void;
    validate: (control: any) => {
        [key: string]: any;
    } | null;
    private readonly subscription;
    constructor(iconService: IconService);
    ngOnChanges(): void;
    ngOnDestroy(): void;
    setDisabledState(disabled: boolean): void;
    writeValue(value: string | null): void;
    registerOnChange(fn: any): void;
    registerOnTouched(fn: any): void;
    registerOnValidatorChange(fn: () => void): void;
    onInputChange(event: InputEvent & {
        target: HTMLInputElement;
    }): void;
    enableKeyEditing(): void;
    disableKeyEditing(): void;
    private getUniqueKey;
    private resetInternalState;
    private updateKey;
    private getUniqueKeyWithNumber;
    static ɵfac: i0.ɵɵFactoryDeclaration<AutoKeyInputComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<AutoKeyInputComponent, "valtimo-auto-key-input", never, { "labelTranslationKey": { "alias": "labelTranslationKey"; "required": false; }; "placeholderTranslationKey": { "alias": "placeholderTranslationKey"; "required": false; }; "mode": { "alias": "mode"; "required": false; }; "usedKeys": { "alias": "usedKeys"; "required": false; }; "sourceText": { "alias": "sourceText"; "required": false; }; }, {}, never, never, true, never>;
}
//# sourceMappingURL=auto-key-input.component.d.ts.map