import { Injector, OnInit } from '@angular/core';
import { FormControl, ValidationErrors } from '@angular/forms';
import { TreeNodeDataItem } from '../data-table/data-table-contract';
import { SmeInternalFormFieldComponent } from '../form/form-field/form-field.component';
import { SimplePropertySchemaFieldLoaderComponent } from '../schema/schema-field-host.component';
import * as i0 from "@angular/core";
export declare class ResourceStringPickerLoaderComponent extends SimplePropertySchemaFieldLoaderComponent {
    static ɵfac: i0.ɵɵFactoryDeclaration<ResourceStringPickerLoaderComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<ResourceStringPickerLoaderComponent, "ng-component", never, {}, {}, never, never, false, never>;
}
/**
 * Accessible json field implementation
 */
export declare class ResourceStringPickerComponent extends SmeInternalFormFieldComponent<string> implements OnInit {
    private static resourceCache;
    resourceStrings: {
        ActualTextPrefix: string;
        InvalidResourceKey: string;
        NoResourceKeyMessage: string;
        CannotFindResourceKey: string;
        WrongFormatActualText: string;
    };
    private internalDisplayValue;
    private isTreeJustOpen;
    private textBoxHasFocus;
    private pathToNavigateWhichMissedDueToTreeWasBusy;
    private internalTreeSelection;
    get treeSelection(): TreeNodeDataItem;
    set treeSelection(treeNodeDataItem: TreeNodeDataItem);
    private dropDownComponent;
    private treeTableComponents;
    treeData: TreeNodeDataItem[];
    get displayValue(): string;
    set displayValue(value: string);
    /**
     * The source name to use for logging
     */
    protected get logSourceName(): string;
    /**
     * Initializes a new instance of the JsonFormFieldComponent
     */
    constructor(injector: Injector);
    onTextBoxFocused(): void;
    onTextBoxBlurred(): void;
    onTextChange(text: any): void;
    protected onValueChanged(value: string): void;
    /**
     * Creates the idBag used by this component to store unique element ids.
     * id values will be assigned be the @see BaseComponent super class.
     */
    protected createIdBag(): MsftSme.StringMap<string>;
    ngOnInit(): void;
    getTextBoxTooltip(): string;
    getKeyColumnTooltip(data: any): string;
    getValueColumnTooltip(data: any): string;
    openDropdown(event: any): void;
    navigateToTree(path: string): void;
    /**
     * Performs validation that is internal to this control
     * @param c The form control attached to this instance
     */
    protected validate(c: FormControl): ValidationErrors;
    private loadResourceStringData;
    private getActualTextByResourceStringKey;
    static ɵfac: i0.ɵɵFactoryDeclaration<ResourceStringPickerComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<ResourceStringPickerComponent, "sme-form-field[type=\"resource-string-picker\"]", never, {}, {}, never, never, false, never>;
}
