import React, { Component, type RefObject } from 'react';
import type { NativeMethods, ViewStyle } from 'react-native';
import { type RNKlarnaStandaloneWebViewProps } from './specs/KlarnaStandaloneWebViewNativeComponent';
export interface KlarnaWebViewProps {
    style?: ViewStyle;
    readonly returnUrl: string;
    readonly overScrollMode?: 'always' | 'content' | 'never';
    readonly bounces?: boolean;
    readonly onLoadStart?: (navigationEvent: KlarnaWebViewNavigationEvent) => void;
    readonly onLoadEnd?: (navigationEvent: KlarnaWebViewNavigationEvent) => void;
    readonly onError?: (navigationError: KlarnaWebViewError) => void;
    readonly onLoadProgress?: (progressEvent: KlarnaWebViewProgressEvent) => void;
    readonly onKlarnaMessage?: (klarnaMessageEvent: KlarnaWebViewKlarnaMessageEvent) => void;
    readonly onRenderProcessGone?: (renderProcessGoneEvent: KlarnaWebViewRenderProcessGoneEvent) => void;
}
export declare class KlarnaStandaloneWebView extends Component<KlarnaWebViewProps, any> {
    standaloneWebViewRef: RefObject<Component<RNKlarnaStandaloneWebViewProps> & Readonly<NativeMethods>>;
    constructor(props: KlarnaWebViewProps);
    render(): React.JSX.Element;
    load: (url: string) => void;
    goForward: () => void;
    goBack: () => void;
    reload: () => void;
}
interface KlarnaWebViewNativeEvent {
    readonly url: string;
    readonly loading: boolean;
    readonly title: string;
    readonly canGoBack: boolean;
    readonly canGoForward: boolean;
}
export interface KlarnaWebViewNavigationEvent extends KlarnaWebViewNativeEvent {
}
export interface KlarnaWebViewError extends KlarnaWebViewNativeEvent {
    readonly code: number;
    readonly description: string;
}
export interface KlarnaWebViewProgressEvent extends KlarnaWebViewNativeEvent {
    readonly progress: number;
}
export interface KlarnaWebViewKlarnaMessageEvent {
    readonly action: string;
    readonly params: {
        [key: string]: any;
    };
}
export interface KlarnaWebViewRenderProcessGoneEvent {
    readonly didCrash: boolean;
}
export default KlarnaStandaloneWebView;
//# sourceMappingURL=KlarnaStandaloneWebView.d.ts.map