import { ElementRef, Renderer } from '@angular/core';
import { NgControl } from '@angular/forms';
import { App } from '../app/app';
import { PointerCoordinates } from '../../util/dom';
import { Config } from '../../config/config';
import { Content, ContentDimensions, ScrollEvent } from '../content/content';
import { DomController } from '../../util/dom-controller';
import { Form, IonicFormInput } from '../../util/form';
import { Ion } from '../ion';
import { Item } from '../item/item';
import { NativeInput, NextInput } from './native-input';
import { NavController } from '../../navigation/nav-controller';
import { NavControllerBase } from '../../navigation/nav-controller-base';
import { Platform } from '../../platform/platform';
export declare class InputBase extends Ion implements IonicFormInput {
    protected _form: Form;
    protected _item: Item;
    protected _app: App;
    protected _platform: Platform;
    protected _content: Content;
    protected _dom: DomController;
    _coord: PointerCoordinates;
    _disabled: boolean;
    _keyboardHeight: number;
    _type: string;
    _useAssist: boolean;
    _usePadding: boolean;
    _value: any;
    _isTouch: boolean;
    _autoFocusAssist: string;
    _autoComplete: string;
    _autoCorrect: string;
    _nav: NavControllerBase;
    _native: NativeInput;
    _scrollStart: any;
    _scrollEnd: any;
    _clearOnEdit: boolean;
    _didBlurAfterEdit: boolean;
    inputControl: NgControl;
    constructor(config: Config, _form: Form, _item: Item, _app: App, _platform: Platform, elementRef: ElementRef, renderer: Renderer, _content: Content, nav: NavController, ngControl: NgControl, _dom: DomController);
    scrollHideFocus(ev: ScrollEvent, shouldHideFocus: boolean): void;
    setItemInputControlCss(): void;
    setControlCss(element: any, control: NgControl): void;
    setValue(val: any): void;
    setType(val: string): void;
    setDisabled(val: boolean): void;
    setClearOnEdit(val: boolean): void;
    checkClearOnEdit(inputValue: string): void;
    clearTextInput(): void;
    setNativeInput(nativeInput: NativeInput): void;
    setNextInput(nextInput: NextInput): void;
    writeValue(val: any): void;
    onChange(val: any): void;
    onKeydown(val: any): void;
    onTouched(val: any): void;
    hasFocus(): boolean;
    hasValue(): boolean;
    checkHasValue(inputValue: any): void;
    focusChange(inputHasFocus: boolean): void;
    pointerStart(ev: any): void;
    pointerEnd(ev: any): void;
    initFocus(): void;
    setFocus(): void;
    registerOnChange(fn: any): void;
    registerOnTouched(fn: any): void;
    focusNext(): void;
}
export declare function getScrollData(inputOffsetTop: number, inputOffsetHeight: number, scrollViewDimensions: ContentDimensions, keyboardHeight: number, plaformHeight: number): ScrollData;
export interface ScrollData {
    scrollAmount: number;
    scrollTo: number;
    scrollPadding: number;
    inputSafeY: number;
}
