import * as React from 'react';
import { ChangingInputElement } from './ChangingInputElement';
import { IHidingInputElement } from './IHidingInputElement';
import { UpdateCallback } from './IInputElement';
import { ILoadingInputElement } from './ILoadingInputElement';
import { IPresentation } from './Presentations';
export declare abstract class ExtendedInputElement<TValue, TPresentation extends IPresentation> extends ChangingInputElement<TValue> implements IHidingInputElement, ILoadingInputElement {
    protected _componentRef: React.RefObject<TPresentation>;
    private _isVisible;
    private _isLoading;
    protected constructor(update: UpdateCallback);
    /** @inheritdoc */
    get isVisible(): boolean;
    /** @inheritdoc */
    hide(): void;
    /** @inheritdoc */
    show(): void;
    /** @inheritdoc */
    get isLoading(): boolean;
    /** @inheritdoc */
    load(action: (doneCallback: () => void) => void): void;
}
