// Generated by dts-bundle-generator v9.5.1
// @ts-nocheck

import { z } from 'zod';

export declare enum NativeMessage {
  HardwareBackPress = 'hardwareBackPress',
  WebViewNavigate = 'webViewNavigate',
}
export type ShopQRCode = {
  from?: string;
  shopName?: string;
  shopWalletAddr?: string;
  bankCode?: string;
  payAmount?: string;
};
export type WalletQRCode = {
  walletAddr?: string;
  bankCode?: string;
  exptime?: string;
};
export type NativeDialog = {
  message?: string;
  onConfirmClick?: string;
  onCancelClick?: string;
  title?: string;
  buttonLabel?: string[];
  open?: boolean;
};
export type AllQRCode = ShopQRCode & WalletQRCode;
export type QRCodeType = ShopQRCode | WalletQRCode;
export type AppBridgeState = {
  scannedQRCode: AllQRCode;
  setQRCode(QRCode: QRCodeType): Promise<void>;
  resetQRCode(): Promise<void>;
  openInAppBrowser: (url: string) => Promise<void>;
  nativeDialog: NativeDialog;
  setNativeDialog(nativeDialog: NativeDialog): Promise<void>;
  resetNativeDialog(): Promise<void>;
};
export type AppPostMessageSchema = typeof appSchema;
export declare const appSchema: import('@webview-bridge/react-native').ParserSchema<{
  hardwareBackPress: z.ZodObject<
    {
      webViewCanGoBack: z.ZodBoolean;
    },
    'strip',
    z.ZodTypeAny,
    {
      webViewCanGoBack?: boolean;
    },
    {
      webViewCanGoBack?: boolean;
    }
  >;
  webViewNavigate: z.ZodObject<
    {
      path: z.ZodString;
    },
    'strip',
    z.ZodTypeAny,
    {
      path?: string;
    },
    {
      path?: string;
    }
  >;
}>;
export declare const appBridge: import('@webview-bridge/react-native').BridgeStore<AppBridgeState>;
export type AppBridge = typeof appBridge;
export declare const WebView: import('react').ForwardRefExoticComponent<
    import('react-native-webview/lib/WebViewTypes').IOSWebViewProps &
    import('react-native-webview/lib/WebViewTypes').AndroidWebViewProps &
    import('react-native-webview/lib/WebViewTypes').WindowsWebViewProps &
    import('react').RefAttributes<import('@webview-bridge/react-native').BridgeWebView>
  >,
  linkWebMethod: <T>() => {
    current: import('@webview-bridge/react-native').WebMethod<T>;
  },
  postMessage: <
    EventName extends NativeMessage,
    Args extends EventName extends NativeMessage
      ? import('@webview-bridge/react-native').ParserSchema<{
          hardwareBackPress: z.ZodObject<
            {
              webViewCanGoBack: z.ZodBoolean;
            },
            'strip',
            z.ZodTypeAny,
            {
              webViewCanGoBack?: boolean;
            },
            {
              webViewCanGoBack?: boolean;
            }
          >;
          webViewNavigate: z.ZodObject<
            {
              path: z.ZodString;
            },
            'strip',
            z.ZodTypeAny,
            {
              path?: string;
            },
            {
              path?: string;
            }
          >;
        }>[EventName]['schema'] extends z.ZodTypeAny
        ? z.TypeOf<
            import('@webview-bridge/react-native').ParserSchema<{
              hardwareBackPress: z.ZodObject<
                {
                  webViewCanGoBack: z.ZodBoolean;
                },
                'strip',
                z.ZodTypeAny,
                {
                  webViewCanGoBack?: boolean;
                },
                {
                  webViewCanGoBack?: boolean;
                }
              >;
              webViewNavigate: z.ZodObject<
                {
                  path: z.ZodString;
                },
                'strip',
                z.ZodTypeAny,
                {
                  path?: string;
                },
                {
                  path?: string;
                }
              >;
            }>[EventName]['schema']
          >
        : import('@webview-bridge/react-native').ParserSchema<{
              hardwareBackPress: z.ZodObject<
                {
                  webViewCanGoBack: z.ZodBoolean;
                },
                'strip',
                z.ZodTypeAny,
                {
                  webViewCanGoBack?: boolean;
                },
                {
                  webViewCanGoBack?: boolean;
                }
              >;
              webViewNavigate: z.ZodObject<
                {
                  path: z.ZodString;
                },
                'strip',
                z.ZodTypeAny,
                {
                  path?: string;
                },
                {
                  path?: string;
                }
              >;
            }>[EventName]['schema'] extends YupTypeAny
          ? yupInfer<Input[EventName_1]['schema']>
          : import('@webview-bridge/react-native').ParserSchema<{
                hardwareBackPress: z.ZodObject<
                  {
                    webViewCanGoBack: z.ZodBoolean;
                  },
                  'strip',
                  z.ZodTypeAny,
                  {
                    webViewCanGoBack?: boolean;
                  },
                  {
                    webViewCanGoBack?: boolean;
                  }
                >;
                webViewNavigate: z.ZodObject<
                  {
                    path: z.ZodString;
                  },
                  'strip',
                  z.ZodTypeAny,
                  {
                    path?: string;
                  },
                  {
                    path?: string;
                  }
                >;
              }>[EventName]['schema'] extends Struct<any>
            ? SupertructInfer<Input[EventName_1]['schema']>
            :
                | import('@webview-bridge/react-native').Primitive
                | Record<string, import('@webview-bridge/react-native').Primitive>
      : never,
  >(
    eventName: EventName,
    args: Args,
  ) => void;

export {};
