import { ElementRef, Injector, OnDestroy } from '@angular/core';
import { AccountInfo } from '@microsoft/windows-admin-center-sdk/core/data/active-directory/models/account-info';
import { SearchType } from '@microsoft/windows-admin-center-sdk/core/data/active-directory/models/search-type';
import { SmeInternalFormFieldComponent } from '../../form/form-field/form-field.component';
import { ValidationAlert } from '../../form/validation-alert/validation-alert';
import { ActiveDirectoryService } from '../active-directory.service';
import * as i0 from "@angular/core";
/**
 * Form field for selecting ad objects from a search query
 */
export declare class ActiveDirectorySearchFormFieldComponent extends SmeInternalFormFieldComponent<AccountInfo[]> implements OnDestroy {
    ADService: ActiveDirectoryService;
    searchingAdInProgress: boolean;
    searchActiveDirectoryMessage: string;
    showAccountList: boolean;
    showSizeLimitWarning: boolean;
    accounts: AccountInfo[];
    isGatewayDomainJoined: boolean;
    searchButtonRef: ElementRef;
    /**
     * The source name to use for logging
     */
    protected get logSourceName(): string;
    /**
     * Indicates that multiple selections are allowed
     * Default is true
     */
    multiple: boolean;
    /**
     * The text message for the Active Directory is not available.
     * In not provide, use the default one
     * @example "Search in Active Directory is not available"
     */
    notAvailableMessage?: string;
    /**
     * The text for the search button in the control.
     * @example "Search"
     */
    searchButtonLabel?: string;
    /**
     * The place holder in search text box.
     * @example enter any text for computer, user or group
     */
    searchPlaceHolder?: string;
    /**
     * The text for the search result table Name column.
     * @example "Name"
     */
    resultNameColumnHeader?: string;
    /**
     * The text for the search result table Type column.
     * @example "Type"
     */
    resultTypeColumnHeader?: string;
    /**
     * The text for the search result table Type column.
     * @example "Login Name"
     */
    resultLoginNameColumnHeader?: string;
    /**
     * The type of search class&category.
     * @example SearchType.Computer
     */
    searchOn?: SearchType | string;
    searchString: any;
    directorySearchSizeLimitWarning: ValidationAlert;
    directorySearchError: ValidationAlert;
    get selectionMode(): string;
    /**
     * Tracking member for ad search
     */
    private searchADSubscription;
    /**
     * Initializes a new instance of the ActiveDirectoryFormFieldFormFieldComponent
     */
    constructor(injector: Injector, ADService: ActiveDirectoryService);
    ngOnDestroy(): void;
    /**
     * search computer list from active directory through gateway api
     */
    searchFromActiveDirectory(): 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>;
    /**
     * Focus on search button
     */
    private yieldFocusOnSearchButton;
    static ɵfac: i0.ɵɵFactoryDeclaration<ActiveDirectorySearchFormFieldComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<ActiveDirectorySearchFormFieldComponent, "sme-form-field[type=\"adSearch\"]", never, { "multiple": "multiple"; "notAvailableMessage": "notAvailableMessage"; "searchButtonLabel": "searchButtonLabel"; "searchPlaceHolder": "searchPlaceHolder"; "resultNameColumnHeader": "resultNameColumnHeader"; "resultTypeColumnHeader": "resultTypeColumnHeader"; "searchOn": "searchOn"; }, {}, never, never, false, never>;
}
