/* TaroComponents custom elements */
export { Ad as TaroAdCore } from '../types/components/ad/ad';
export { AdCustom as TaroAdCustomCore } from '../types/components/ad-custom/ad-custom';
export { AnimationVideo as TaroAnimationVideoCore } from '../types/components/animation-video/animation-video';
export { AnimationView as TaroAnimationViewCore } from '../types/components/animation-view/animation-view';
export { ArCamera as TaroArCameraCore } from '../types/components/ar-camera/ar-camera';
export { Audio as TaroAudioCore } from '../types/components/audio/audio';
export { AwemeData as TaroAwemeDataCore } from '../types/components/aweme-data/aweme-data';
export { Block as TaroBlockCore } from '../types/components/block/block';
export { Button as TaroButtonCore } from '../types/components/button/button';
export { Camera as TaroCameraCore } from '../types/components/camera/camera';
export { Canvas as TaroCanvasCore } from '../types/components/canvas/canvas';
export { Checkbox as TaroCheckboxCore } from '../types/components/checkbox/checkbox';
export { CheckboxGroup as TaroCheckboxGroupCore } from '../types/components/checkbox/checkbox-group';
export { CommentDetail as TaroCommentDetailCore } from '../types/components/comment/comment-detail';
export { CommentList as TaroCommentListCore } from '../types/components/comment/comment-list';
export { ContactButton as TaroContactButtonCore } from '../types/components/contact-button/contact-button';
export { CoverImage as TaroCoverImageCore } from '../types/components/cover-image/cover-image';
export { CoverView as TaroCoverViewCore } from '../types/components/cover-view/cover-view';
export { CustomWrapper as TaroCustomWrapperCore } from '../types/components/custom-wrapper/custom-wrapper';
export { Editor as TaroEditorCore } from '../types/components/editor/editor';
export { FollowSwan as TaroFollowSwanCore } from '../types/components/follow-swan/follow-swan';
export { Form as TaroFormCore } from '../types/components/form/form';
export { FunctionalPageNavigator as TaroFunctionalPageNavigatorCore } from '../types/components/functional-page-navigator/functional-page-navigator';
export { Icon as TaroIconCore } from '../types/components/icon/icon';
export { Image as TaroImageCore } from '../types/components/image/image';
export { InlinePaymentPanel as TaroInlinePaymentPanelCore } from '../types/components/inline-payment-panel/inline-payment-panel';
export { Input as TaroInputCore } from '../types/components/input/input';
export { KeyboardAccessory as TaroKeyboardAccessoryCore } from '../types/components/keyboard-accessory/keyboard-accessory';
export { Label as TaroLabelCore } from '../types/components/label/label';
export { Lifestyle as TaroLifestyleCore } from '../types/components/lifestyle/lifestyle';
export { Like as TaroLikeCore } from '../types/components/like/like';
export { LivePlayer as TaroLivePlayerCore } from '../types/components/live-player/live-player';
export { LivePusher as TaroLivePusherCore } from '../types/components/live-pusher/live-pusher';
export { Login as TaroLoginCore } from '../types/components/login/login';
export { Lottie as TaroLottieCore } from '../types/components/lottie/lottie';
export { Map as TaroMapCore } from '../types/components/map/map';
export { MatchMedia as TaroMatchMediaCore } from '../types/components/match-media/match-media';
export { MovableArea as TaroMovableAreaCore } from '../types/components/movable-area/movable-area';
export { MovableView as TaroMovableViewCore } from '../types/components/movable-area/movable-view';
export { NativeSlot as TaroNativeSlotCore } from '../types/components/slot/native-slot';
export { NavigationBar as TaroNavigationBarCore } from '../types/components/navigation-bar/navigation-bar';
export { Navigator as TaroNavigatorCore } from '../types/components/navigator/navigator';
export { OfficialAccount as TaroOfficialAccountCore } from '../types/components/official-account/official-account';
export { OpenData as TaroOpenDataCore } from '../types/components/open-data/open-data';
export { PageContainer as TaroPageContainerCore } from '../types/components/page-container/page-container';
export { PageMeta as TaroPageMetaCore } from '../types/components/page-meta/page-meta';
export { Picker as TaroPickerCore } from '../types/components/picker/picker';
export { TaroPickerGroup as TaroPickerGroup } from '../types/components/picker/picker-group';
export { PickerViewColumn as TaroPickerViewColumnCore } from '../types/components/picker-view/picker-view-column';
export { PickerView as TaroPickerViewCore } from '../types/components/picker-view/picker-view';
export { Progress as TaroProgressCore } from '../types/components/progress/progress';
export { PullToRefresh as TaroPullToRefresh } from '../types/components/pull-to-refresh/pull-to-refresh';
export { Radio as TaroRadioCore } from '../types/components/radio/radio';
export { RadioGroup as TaroRadioGroupCore } from '../types/components/radio/radio-group';
export { RichText as TaroRichTextCore } from '../types/components/rich-text/rich-text';
export { RootPortal as TaroRootPortalCore } from '../types/components/root-portal/root-portal';
export { RtcRoom as TaroRtcRoomCore } from '../types/components/rtc-room/rtc-room';
export { RtcRoomItem as TaroRtcRoomItemCore } from '../types/components/rtc-room/rtc-room-item';
export { ScrollView as TaroScrollViewCore } from '../types/components/scroll-view/scroll-view';
export { ShareElement as TaroShareElementCore } from '../types/components/share-element/share-element';
export { Slider as TaroSliderCore } from '../types/components/slider/slider';
export { Slot as TaroSlotCore } from '../types/components/slot/slot';
export { Swiper as TaroSwiperCore } from '../types/components/swiper/swiper';
export { SwiperItem as TaroSwiperItemCore } from '../types/components/swiper/swiper-item';
export { Switch as TaroSwitchCore } from '../types/components/switch/switch';
export { TabItem as TaroTabItemCore } from '../types/components/tabs/tab-item';
export { Tabbar as TaroTabbar } from '../types/components/tabbar/tabbar';
export { Tabs as TaroTabsCore } from '../types/components/tabs/tabs';
export { Text as TaroTextCore } from '../types/components/text/text';
export { Textarea as TaroTextareaCore } from '../types/components/textarea/textarea';
export { VideoControl as TaroVideoControl } from '../types/components/video/video-control';
export { Video as TaroVideoCore } from '../types/components/video/video';
export { VideoDanmu as TaroVideoDanmu } from '../types/components/video/video-danmu';
export { View as TaroViewCore } from '../types/components/view/view';
export { VoipRoom as TaroVoipRoomCore } from '../types/components/voip-room/voip-room';
export { WebView as TaroWebViewCore } from '../types/components/web-view/web-view';

/**
 * Used to manually set the base path where assets can be found.
 * If the script is used as "module", it's recommended to use "import.meta.url",
 * such as "setAssetPath(import.meta.url)". Other options include
 * "setAssetPath(document.currentScript.src)", or using a bundler's replace plugin to
 * dynamically set the path at build time, such as "setAssetPath(process.env.ASSET_PATH)".
 * But do note that this configuration depends on how your script is bundled, or lack of
 * bundling, and where your assets can be loaded from. Additionally custom bundling
 * will have to ensure the static assets are copied to its build directory.
 */
export declare const setAssetPath: (path: string) => void;

/**
 * Used to specify a nonce value that corresponds with an application's CSP.
 * When set, the nonce will be added to all dynamically created script and style tags at runtime.
 * Alternatively, the nonce value can be set on a meta tag in the DOM head
 * (<meta name="csp-nonce" content="{ nonce value here }" />) which
 * will result in the same behavior.
 */
export declare const setNonce: (nonce: string) => void

export interface SetPlatformOptions {
  raf?: (c: FrameRequestCallback) => number;
  ael?: (el: EventTarget, eventName: string, listener: EventListenerOrEventListenerObject, options: boolean | AddEventListenerOptions) => void;
  rel?: (el: EventTarget, eventName: string, listener: EventListenerOrEventListenerObject, options: boolean | AddEventListenerOptions) => void;
}
export declare const setPlatformOptions: (opts: SetPlatformOptions) => void;
export * from '../types';
