import { AfterContentInit, EventEmitter, TemplateRef } from '@angular/core';
import { ControlValueAccessor } from '@angular/forms';
import { EngieTemplateDirective } from '../../directives/engie-template.directive';
import { TSizeVariants } from '../../models/size-variant.model';
import * as i0 from "@angular/core";
export declare class SearchComponent implements AfterContentInit, ControlValueAccessor {
    private readonly defaultInputId;
    private cdr;
    private isDisabledByForm;
    private onChange;
    protected value: string | null;
    protected onTouched: (() => void) | null;
    protected actionTemplate?: TemplateRef<unknown>;
    private searchInputElement?;
    /**
     * Specifies whether the element is disabled or not.
     */
    disabled: boolean;
    /**
     * HTML input id
     */
    inputId?: string;
    /**
     * Placeholder input text.
     */
    placeholder?: string;
    /**
     * The size of the search component.
     */
    scale?: Extract<TSizeVariants, 'sm' | 'md' | 'lg' | 'xl'>;
    /**
     * Reset button alternative label for assistive technologies
     */
    altResetButtonLabel?: string;
    /**
     * Alternative label for assistive technologies
     */
    altLabel?: string;
    /**
     * Input keyboard keydown events.
     */
    enterKeydown: EventEmitter<void>;
    protected element?: EngieTemplateDirective;
    ngAfterContentInit(): void;
    protected get classes(): string[];
    protected get isDisabled(): boolean;
    protected get finalInputId(): string;
    protected valueChange(value: string): void;
    protected onClearValue(): void;
    /**
     * @ignore
     */
    writeValue(value: string): void;
    /**
     * @ignore
     */
    registerOnChange(onChange: (value: string | null) => void): void;
    /**
     * @ignore
     */
    registerOnTouched(onTouched: () => void): void;
    /**
     * @ignore
     */
    setDisabledState(isDisabled: boolean): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<SearchComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<SearchComponent, "nj-search", never, { "disabled": { "alias": "disabled"; "required": false; }; "inputId": { "alias": "inputId"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "scale": { "alias": "scale"; "required": false; }; "altResetButtonLabel": { "alias": "altResetButtonLabel"; "required": false; }; "altLabel": { "alias": "altLabel"; "required": false; }; }, { "enterKeydown": "enterKeydown"; }, ["element"], never, true, never>;
    static ngAcceptInputType_disabled: unknown;
}
