/* Ionic custom elements */
export { ActionSheet as IonActionSheet } from '../dist/types/components/action-sheet/action-sheet';
export { Alert as IonAlert } from '../dist/types/components/alert/alert';
export { App as IonApp } from '../dist/types/components/app/app';
export { Avatar as IonAvatar } from '../dist/types/components/avatar/avatar';
export { BackButton as IonBackButton } from '../dist/types/components/back-button/back-button';
export { Backdrop as IonBackdrop } from '../dist/types/components/backdrop/backdrop';
export { Badge as IonBadge } from '../dist/types/components/badge/badge';
export { Button as IonButton } from '../dist/types/components/button/button';
export { Buttons as IonButtons } from '../dist/types/components/buttons/buttons';
export { Card as IonCard } from '../dist/types/components/card/card';
export { CardContent as IonCardContent } from '../dist/types/components/card-content/card-content';
export { CardHeader as IonCardHeader } from '../dist/types/components/card-header/card-header';
export { CardSubtitle as IonCardSubtitle } from '../dist/types/components/card-subtitle/card-subtitle';
export { CardTitle as IonCardTitle } from '../dist/types/components/card-title/card-title';
export { Checkbox as IonCheckbox } from '../dist/types/components/checkbox/checkbox';
export { Chip as IonChip } from '../dist/types/components/chip/chip';
export { Col as IonCol } from '../dist/types/components/col/col';
export { Content as IonContent } from '../dist/types/components/content/content';
export { Datetime as IonDatetime } from '../dist/types/components/datetime/datetime';
export { Fab as IonFab } from '../dist/types/components/fab/fab';
export { FabButton as IonFabButton } from '../dist/types/components/fab-button/fab-button';
export { FabList as IonFabList } from '../dist/types/components/fab-list/fab-list';
export { Footer as IonFooter } from '../dist/types/components/footer/footer';
export { Grid as IonGrid } from '../dist/types/components/grid/grid';
export { Header as IonHeader } from '../dist/types/components/header/header';
export { Img as IonImg } from '../dist/types/components/img/img';
export { InfiniteScroll as IonInfiniteScroll } from '../dist/types/components/infinite-scroll/infinite-scroll';
export { InfiniteScrollContent as IonInfiniteScrollContent } from '../dist/types/components/infinite-scroll-content/infinite-scroll-content';
export { Input as IonInput } from '../dist/types/components/input/input';
export { Item as IonItem } from '../dist/types/components/item/item';
export { ItemDivider as IonItemDivider } from '../dist/types/components/item-divider/item-divider';
export { ItemGroup as IonItemGroup } from '../dist/types/components/item-group/item-group';
export { ItemOption as IonItemOption } from '../dist/types/components/item-option/item-option';
export { ItemOptions as IonItemOptions } from '../dist/types/components/item-options/item-options';
export { ItemSliding as IonItemSliding } from '../dist/types/components/item-sliding/item-sliding';
export { Label as IonLabel } from '../dist/types/components/label/label';
export { List as IonList } from '../dist/types/components/list/list';
export { ListHeader as IonListHeader } from '../dist/types/components/list-header/list-header';
export { Loading as IonLoading } from '../dist/types/components/loading/loading';
export { Menu as IonMenu } from '../dist/types/components/menu/menu';
export { MenuButton as IonMenuButton } from '../dist/types/components/menu-button/menu-button';
export { MenuToggle as IonMenuToggle } from '../dist/types/components/menu-toggle/menu-toggle';
export { Modal as IonModal } from '../dist/types/components/modal/modal';
export { Nav as IonNav } from '../dist/types/components/nav/nav';
export { NavLink as IonNavLink } from '../dist/types/components/nav-link/nav-link';
export { Note as IonNote } from '../dist/types/components/note/note';
export { Picker as IonPicker } from '../dist/types/components/picker/picker';
export { PickerColumnCmp as IonPickerColumn } from '../dist/types/components/picker-column/picker-column';
export { Popover as IonPopover } from '../dist/types/components/popover/popover';
export { ProgressBar as IonProgressBar } from '../dist/types/components/progress-bar/progress-bar';
export { Radio as IonRadio } from '../dist/types/components/radio/radio';
export { RadioGroup as IonRadioGroup } from '../dist/types/components/radio-group/radio-group';
export { Range as IonRange } from '../dist/types/components/range/range';
export { Refresher as IonRefresher } from '../dist/types/components/refresher/refresher';
export { RefresherContent as IonRefresherContent } from '../dist/types/components/refresher-content/refresher-content';
export { Reorder as IonReorder } from '../dist/types/components/reorder/reorder';
export { ReorderGroup as IonReorderGroup } from '../dist/types/components/reorder-group/reorder-group';
export { RippleEffect as IonRippleEffect } from '../dist/types/components/ripple-effect/ripple-effect';
export { Route as IonRoute } from '../dist/types/components/route/route';
export { RouteRedirect as IonRouteRedirect } from '../dist/types/components/route-redirect/route-redirect';
export { Router as IonRouter } from '../dist/types/components/router/router';
export { RouterLink as IonRouterLink } from '../dist/types/components/router-link/router-link';
export { RouterOutlet as IonRouterOutlet } from '../dist/types/components/router-outlet/route-outlet';
export { Row as IonRow } from '../dist/types/components/row/row';
export { Searchbar as IonSearchbar } from '../dist/types/components/searchbar/searchbar';
export { Segment as IonSegment } from '../dist/types/components/segment/segment';
export { SegmentButton as IonSegmentButton } from '../dist/types/components/segment-button/segment-button';
export { Select as IonSelect } from '../dist/types/components/select/select';
export { SelectOption as IonSelectOption } from '../dist/types/components/select-option/select-option';
export { SelectPopover as IonSelectPopover } from '../dist/types/components/select-popover/select-popover';
export { SkeletonText as IonSkeletonText } from '../dist/types/components/skeleton-text/skeleton-text';
export { Slide as IonSlide } from '../dist/types/components/slide/slide';
export { Slides as IonSlides } from '../dist/types/components/slides/slides';
export { Spinner as IonSpinner } from '../dist/types/components/spinner/spinner';
export { SplitPane as IonSplitPane } from '../dist/types/components/split-pane/split-pane';
export { Tab as IonTab } from '../dist/types/components/tab/tab';
export { TabBar as IonTabBar } from '../dist/types/components/tab-bar/tab-bar';
export { TabButton as IonTabButton } from '../dist/types/components/tab-button/tab-button';
export { Tabs as IonTabs } from '../dist/types/components/tabs/tabs';
export { Text as IonText } from '../dist/types/components/text/text';
export { Textarea as IonTextarea } from '../dist/types/components/textarea/textarea';
export { Thumbnail as IonThumbnail } from '../dist/types/components/thumbnail/thumbnail';
export { ToolbarTitle as IonTitle } from '../dist/types/components/title/title';
export { Toast as IonToast } from '../dist/types/components/toast/toast';
export { Toggle as IonToggle } from '../dist/types/components/toggle/toggle';
export { Toolbar as IonToolbar } from '../dist/types/components/toolbar/toolbar';
export { VirtualScroll as IonVirtualScroll } from '../dist/types/components/virtual-scroll/virtual-scroll';

/**
 * 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 '../dist/types';
