import type { Point, Position } from './view-interfaces';
import type { GestureTypes, GestureEventData } from '../../gestures';
import { ViewCommon, isEnabledProperty, originXProperty, originYProperty, isUserInteractionEnabledProperty, testIDProperty, androidOverflowEdgeProperty, statusBarStyleProperty } from './view-common';
import { directionProperty } from '../../styling/style-properties';
import { ShowModalOptions, hiddenProperty } from '../view-base';
import { EventData } from '../../../data/observable';
import { perspectiveProperty, visibilityProperty, opacityProperty, horizontalAlignmentProperty, verticalAlignmentProperty, minWidthProperty, minHeightProperty, rotateProperty, rotateXProperty, rotateYProperty, scaleXProperty, scaleYProperty, translateXProperty, translateYProperty, zIndexProperty, backgroundInternalProperty, androidElevationProperty, androidDynamicElevationOffsetProperty } from '../../styling/style-properties';
import { CoreTypes } from '../../../core-types';
import { Background } from '../../styling/background';
import { accessibilityEnabledProperty, accessibilityHiddenProperty, accessibilityHintProperty, accessibilityIdentifierProperty, accessibilityLabelProperty, accessibilityLiveRegionProperty, accessibilityMediaSessionProperty, accessibilityRoleProperty, accessibilityStateProperty, accessibilityValueProperty } from '../../../accessibility/accessibility-properties';
import { AccessibilityLiveRegion, AccessibilityRole, AccessibilityState } from '../../../accessibility';
import { BoxShadow } from '../../styling/box-shadow';
export * from './view-common';
export * from './view-helper';
export * from '../properties';
export declare class View extends ViewCommon {
    [androidOverflowEdgeProperty.setNative]: (value: CoreTypes.AndroidOverflow) => void;
    [isEnabledProperty.setNative]: (value: boolean) => void;
    [originXProperty.getDefault]: () => number;
    [originXProperty.setNative]: (value: number) => void;
    [originYProperty.getDefault]: () => number;
    [originYProperty.setNative]: (value: number) => void;
    [isUserInteractionEnabledProperty.setNative]: (value: boolean) => void;
    [hiddenProperty.getDefault]: () => boolean;
    [hiddenProperty.setNative]: (value: boolean) => void;
    [visibilityProperty.getDefault]: () => CoreTypes.VisibilityType;
    [visibilityProperty.setNative]: (value: CoreTypes.VisibilityType) => void;
    [opacityProperty.getDefault]: () => number;
    [opacityProperty.setNative]: (value: number) => void;
    [accessibilityRoleProperty.setNative]: (value: AccessibilityRole) => void;
    [accessibilityLiveRegionProperty.setNative]: (value: AccessibilityLiveRegion) => void;
    [accessibilityStateProperty.setNative]: (value: AccessibilityState) => void;
    [horizontalAlignmentProperty.getDefault]: () => CoreTypes.HorizontalAlignmentType;
    [horizontalAlignmentProperty.setNative]: (value: CoreTypes.HorizontalAlignmentType) => void;
    [verticalAlignmentProperty.getDefault]: () => CoreTypes.VerticalAlignmentType;
    [verticalAlignmentProperty.setNative]: (value: CoreTypes.VerticalAlignmentType) => void;
    [statusBarStyleProperty.getDefault]: () => "light" | "dark";
    [statusBarStyleProperty.setNative]: (value: "dark" | "light" | {
        color: number;
        systemUiVisibility: number;
    }) => void;
    [directionProperty.setNative]: (value: CoreTypes.LayoutDirectionType) => void;
    [testIDProperty.setNative]: (value: string) => void;
    [accessibilityEnabledProperty.setNative]: (value: boolean) => void;
    [accessibilityIdentifierProperty.setNative]: (value: string) => void;
    [accessibilityValueProperty.setNative]: (value: string) => void;
    [accessibilityLabelProperty.setNative]: (value: string) => void;
    [accessibilityHintProperty.setNative]: (value: string) => void;
    [accessibilityHiddenProperty.setNative]: (value: boolean) => void;
    [accessibilityMediaSessionProperty.setNative]: (value: string) => void;
    [androidElevationProperty.getDefault]: () => number;
    [androidElevationProperty.setNative]: (value: number) => void;
    [androidDynamicElevationOffsetProperty.getDefault]: () => number;
    [androidDynamicElevationOffsetProperty.setNative]: (value: number) => void;
    [rotateProperty.setNative]: (value: number) => void;
    [rotateXProperty.setNative]: (value: number) => void;
    [rotateYProperty.setNative]: (value: number) => void;
    [perspectiveProperty.setNative]: (value: number) => void;
    [scaleXProperty.setNative]: (value: number) => void;
    [scaleYProperty.setNative]: (value: number) => void;
    [translateXProperty.setNative]: (value: CoreTypes.dip) => void;
    [translateYProperty.setNative]: (value: CoreTypes.dip) => void;
    [zIndexProperty.getDefault]: () => number;
    [zIndexProperty.setNative]: (value: number) => void;
    [backgroundInternalProperty.getDefault]: () => android.graphics.drawable.Drawable;
    [backgroundInternalProperty.setNative]: (value: android.graphics.drawable.Drawable | Background) => void;
    [minWidthProperty.setNative]: (value: CoreTypes.LengthType) => void;
    [minHeightProperty.setNative]: (value: CoreTypes.LengthType) => void;
    static androidBackPressedEvent: string;
    _dialogFragment: androidx.fragment.app.DialogFragment;
    _manager: androidx.fragment.app.FragmentManager;
    private touchListenerIsSet;
    private touchListener;
    private layoutChangeListenerIsSet;
    private layoutChangeListener;
    private _rootManager;
    private insetListenerIsSet;
    private needsInsetListener;
    nativeViewProtected: android.view.View;
    _observe(type: GestureTypes, callback: (args: GestureEventData) => void, thisArg?: any): void;
    addEventListener(eventNames: string, callback: (data: EventData) => void, thisArg?: any, once?: boolean): void;
    removeEventListener(eventNames: string, callback?: (data: EventData) => void, thisArg?: any): void;
    private setInsetListener;
    _getChildFragmentManager(): androidx.fragment.app.FragmentManager;
    _getRootFragmentManager(): androidx.fragment.app.FragmentManager;
    _getFragmentManager(): androidx.fragment.app.FragmentManager;
    onLoaded(): void;
    onUnloaded(): void;
    onBackPressed(): boolean;
    handleGestureTouch(event: android.view.MotionEvent): any;
    hasGestureObservers(): boolean;
    initNativeView(): void;
    needsOnLayoutChangeListener(): boolean;
    disposeNativeView(): void;
    setOnTouchListener(): void;
    private setOnLayoutChangeListener;
    get isLayoutRequired(): boolean;
    get isLayoutValid(): boolean;
    get _hasFragments(): boolean;
    layoutNativeView(left: number, top: number, right: number, bottom: number): void;
    requestLayout(): void;
    measure(widthMeasureSpec: number, heightMeasureSpec: number): void;
    layout(left: number, top: number, right: number, bottom: number): void;
    onMeasure(widthMeasureSpec: number, heightMeasureSpec: number): void;
    onLayout(left: number, top: number, right: number, bottom: number): void;
    _getCurrentLayoutBounds(): Position;
    getMeasuredWidth(): number;
    getMeasuredHeight(): number;
    focus(): boolean;
    getLocationInWindow(): Point;
    getLocationOnScreen(): Point;
    getLocationRelativeTo(otherView: ViewCommon): Point;
    static resolveSizeAndState(size: number, specSize: number, specMode: number, childMeasuredState: number): number;
    protected _showNativeModalView(parent: View, options: ShowModalOptions): void;
    protected _hideNativeModalView(parent: View, whenClosedCallback: () => void): void;
    updateStatusBarStyle(value: 'dark' | 'light' | {
        color: number;
        systemUiVisibility: number;
    }): void;
    getClosestWindow(): android.view.Window;
    setAccessibilityIdentifier(view: any, value: any): void;
    protected getDefaultElevation(): number;
    protected getDefaultDynamicElevationOffset(): number;
    private refreshStateListAnimator;
    _applyBackground(background: Background, isBorderDrawable: boolean, onlyColor: boolean, backgroundDrawable: android.graphics.drawable.Drawable): void;
    protected _drawBoxShadow(boxShadows: BoxShadow[]): void;
    _redrawNativeBackground(value: android.graphics.drawable.Drawable | Background): void;
    protected onBackgroundOrBorderPropertyChanged(): void;
    accessibilityAnnouncement(message?: string): void;
    accessibilityScreenChanged(): void;
}
export declare class ContainerView extends View {
    iosOverflowSafeArea: boolean;
    constructor();
}
export declare class CustomLayoutView extends ContainerView {
    nativeViewProtected: android.view.ViewGroup;
    createNativeView(): org.nativescript.widgets.ContentLayout;
    _addViewToNativeVisualTree(child: ViewCommon, atIndex?: number): boolean;
    _updateNativeLayoutParams(child: View): void;
    _setChildMinWidthNative(child: View, value: CoreTypes.LengthType): void;
    _setChildMinHeightNative(child: View, value: CoreTypes.LengthType): void;
    _removeViewFromNativeVisualTree(child: ViewCommon): void;
}
