import { ElementRef, EventEmitter, NgZone, OnDestroy, OnInit, Renderer } from '@angular/core';
import { App } from '../app/app';
import { Config } from '../../config/config';
import { DomController } from '../../util/dom-controller';
import { Img } from '../img/img';
import { Ion } from '../ion';
import { Keyboard } from '../../util/keyboard';
import { ScrollView, ScrollDirection, ScrollEvent } from '../../util/scroll-view';
import { Tabs } from '../tabs/tabs';
import { ViewController } from '../../navigation/view-controller';
export { ScrollEvent, ScrollDirection } from '../../util/scroll-view';
export declare class Content extends Ion implements OnDestroy, OnInit {
    _app: App;
    _keyboard: Keyboard;
    _zone: NgZone;
    _tabs: Tabs;
    private _dom;
    _cTop: number;
    _cBottom: number;
    _pTop: number;
    _pRight: number;
    _pBottom: number;
    _pLeft: number;
    _scrollPadding: number;
    _hdrHeight: number;
    _ftrHeight: number;
    _tabbarHeight: number;
    _tabsPlacement: string;
    _tTop: number;
    _fTop: number;
    _fBottom: number;
    _inputPolling: boolean;
    _scroll: ScrollView;
    _scLsn: Function;
    _fullscreen: boolean;
    _imgs: Img[];
    _footerEle: HTMLElement;
    _dirty: boolean;
    _scrollEle: HTMLElement;
    _fixedEle: HTMLElement;
    statusbarPadding: boolean;
    contentTop: number;
    contentBottom: number;
    scrollHeight: number;
    scrollWidth: number;
    scrollTop: number;
    scrollLeft: number;
    readonly isScrolling: boolean;
    readonly velocityY: number;
    readonly velocityX: number;
    readonly directionY: ScrollDirection;
    readonly directionX: ScrollDirection;
    ionScrollStart: EventEmitter<ScrollEvent>;
    ionScroll: EventEmitter<ScrollEvent>;
    ionScrollEnd: EventEmitter<ScrollEvent>;
    readReady: EventEmitter<any>;
    writeReady: EventEmitter<any>;
    constructor(config: Config, elementRef: ElementRef, renderer: Renderer, _app: App, _keyboard: Keyboard, _zone: NgZone, viewCtrl: ViewController, _tabs: Tabs, _dom: DomController);
    ngOnInit(): void;
    ngOnDestroy(): void;
    getScrollElement(): HTMLElement;
    onScrollElementTransitionEnd(callback: Function): void;
    scrollTo(x: number, y: number, duration?: number, done?: Function): Promise<any>;
    scrollToTop(duration?: number): Promise<any>;
    scrollToBottom(duration?: number): Promise<any>;
    enableJsScroll(): void;
    fullscreen: boolean;
    addImg(img: Img): void;
    removeImg(img: Img): void;
    setScrollElementStyle(prop: string, val: any): void;
    getContentDimensions(): ContentDimensions;
    addScrollPadding(newPadding: number): void;
    clearScrollPaddingFocusOut(): void;
    resize(): void;
    readDimensions(): void;
    writeDimensions(): void;
    imgsUpdate(): void;
    isImgsUpdatable(): boolean;
}
export declare function updateImgs(imgs: Img[], scrollTop: number, scrollHeight: number, scrollDirectionY: ScrollDirection, requestableBuffer: number, renderableBuffer: number): void;
export interface ContentDimensions {
    contentHeight: number;
    contentTop: number;
    contentBottom: number;
    contentWidth: number;
    contentLeft: number;
    scrollHeight: number;
    scrollTop: number;
    scrollWidth: number;
    scrollLeft: number;
}
