import { ComponentInterface, EventEmitter } from '../../stencil-public-runtime';
import { LogInstance, Loggable } from '../../utils/log';
import { BalConfigState } from '../../utils/config';
import { BalAriaForm } from '../../interfaces';
import { BalAriaFormLinking } from '../../utils/form';
export declare class Date implements ComponentInterface, Loggable, BalAriaFormLinking {
    private inputId;
    private inheritedAttributes;
    private popupCleanup?;
    private referenceEl;
    private floatingEl;
    private inputEl;
    el: HTMLElement;
    private isExpanded;
    private language;
    private calendarValue;
    ariaForm: BalAriaForm;
    log: LogInstance;
    createLogger(log: LogInstance): void;
    name: string;
    invalid: boolean;
    required: boolean;
    disabled: boolean;
    readonly: boolean;
    freeSolo: boolean;
    placeholder?: string;
    triggerIcon: boolean;
    closeOnSelect: boolean;
    value: string | undefined;
    protected valueChanged(): void;
    min?: string;
    max?: string;
    minYearProp?: number;
    maxYearProp?: number;
    defaultDate?: string;
    allowedDates: BalProps.BalDateCallback | undefined;
    debounce: number;
    protected debounceChanged(): void;
    autoInvalidOff: boolean;
    balInput: EventEmitter<BalEvents.BalDateInputDetail>;
    balChange: EventEmitter<BalEvents.BalDateChangeDetail>;
    balWillAnimate: EventEmitter<BalEvents.BalDateWillAnimateDetail>;
    balDidAnimate: EventEmitter<BalEvents.BalDateDidAnimateDetail>;
    balBlur: EventEmitter<BalEvents.BalDateBlurDetail>;
    balFocus: EventEmitter<BalEvents.BalDateFocusDetail>;
    balInputClick: EventEmitter<BalEvents.BalDateInputClickDetail>;
    balIconClick: EventEmitter<BalEvents.BalDateIconClickDetail>;
    balPopoverPrepare: EventEmitter<string>;
    connectedCallback(): void;
    componentWillLoad(): void;
    listenToKeydown(ev: KeyboardEvent): Promise<void>;
    listenOnKeyup(ev: KeyboardEvent): Promise<void>;
    listenOnclick(ev: UIEvent): Promise<void>;
    listenOnPopoverPrepare(ev: CustomEvent<string>): Promise<void>;
    configChanged(state: BalConfigState): Promise<void>;
    open(): Promise<boolean>;
    close(): Promise<boolean>;
    toggle(): Promise<boolean>;
    select(dateString: string): Promise<void>;
    setFocus(): Promise<void>;
    setBlur(): Promise<void>;
    getInputElement(): Promise<HTMLInputElement | undefined>;
    setAriaForm(ariaForm: BalAriaForm): Promise<void>;
    private expand;
    private collapse;
    private updatePosition;
    private onIconClick;
    private onInputClick;
    private onCalendarChange;
    private onInputInput;
    private onInputChange;
    private onInputFocus;
    private onInputBlur;
    private onKeyPress;
    render(): any;
}
