/* PostnordWebComponents custom elements */
export { PnAccordion as PnAccordion } from '../types/components/content/pn-accordion/pn-accordion';
export { defineCustomElement as defineCustomElementPnAccordion } from './pn-accordion';
export { PnAccordionRow as PnAccordionRow } from '../types/components/content/pn-accordion/row/pn-accordion-row';
export { defineCustomElement as defineCustomElementPnAccordionRow } from './pn-accordion-row';
export { PnActionMenu as PnActionMenu } from '../types/components/buttons/pn-action-menu/pn-action-menu';
export { defineCustomElement as defineCustomElementPnActionMenu } from './pn-action-menu';
export { PnButton as PnButton } from '../types/components/buttons/pn-button/pn-button';
export { defineCustomElement as defineCustomElementPnButton } from './pn-button';
export { PnButtonDropdown as PnButtonDropdown } from '../types/components/buttons/pn-button-dropdown/pn-button-dropdown';
export { defineCustomElement as defineCustomElementPnButtonDropdown } from './pn-button-dropdown';
export { PnCard as PnCard } from '../types/components/navigation/pn-card/pn-card';
export { defineCustomElement as defineCustomElementPnCard } from './pn-card';
export { PnCheckbox as PnCheckbox } from '../types/components/input/pn-checkbox/pn-checkbox';
export { defineCustomElement as defineCustomElementPnCheckbox } from './pn-checkbox';
export { PnChoiceChip as PnChoiceChip } from '../types/components/input/pn-choice-chip/pn-choice-chip';
export { defineCustomElement as defineCustomElementPnChoiceChip } from './pn-choice-chip';
export { PnCounter as PnCounter } from '../types/components/input/pn-counter/pn-counter';
export { defineCustomElement as defineCustomElementPnCounter } from './pn-counter';
export { PnDatePicker as PnDatePicker } from '../types/components/input/pn-date-picker/pn-date-picker';
export { defineCustomElement as defineCustomElementPnDatePicker } from './pn-date-picker';
export { PnFieldset as PnFieldset } from '../types/components/input/pn-fieldset/pn-fieldset';
export { defineCustomElement as defineCustomElementPnFieldset } from './pn-fieldset';
export { PnFileUpload as PnFileUpload } from '../types/components/input/pn-file-upload/pn-file-upload';
export { defineCustomElement as defineCustomElementPnFileUpload } from './pn-file-upload';
export { PnFooter as PnFooter } from '../types/components/navigation/pn-footer/pn-footer';
export { defineCustomElement as defineCustomElementPnFooter } from './pn-footer';
export { PnHeader as PnHeader } from '../types/components/layout/pn-header/pn-header';
export { defineCustomElement as defineCustomElementPnHeader } from './pn-header';
export { PnIcon as PnIcon } from '../types/components/design-tokens/pn-icon/pn-icon';
export { defineCustomElement as defineCustomElementPnIcon } from './pn-icon';
export { PnIllustration as PnIllustration } from '../types/components/design-tokens/pn-illustration/pn-illustration';
export { defineCustomElement as defineCustomElementPnIllustration } from './pn-illustration';
export { PnInput as PnInput } from '../types/components/input/pn-input/pn-input';
export { defineCustomElement as defineCustomElementPnInput } from './pn-input';
export { PnModal as PnModal } from '../types/components/feedback/pn-modal/pn-modal';
export { defineCustomElement as defineCustomElementPnModal } from './pn-modal';
export { PnMultiselect as PnMultiselect } from '../types/components/input/pn-multiselect/pn-multiselect';
export { defineCustomElement as defineCustomElementPnMultiselect } from './pn-multiselect';
export { PnOcrSearch as PnOcrSearch } from '../types/components/web-components/pn-ocr-search/pn-ocr-search';
export { defineCustomElement as defineCustomElementPnOcrSearch } from './pn-ocr-search';
export { PnPageNav as PnPageNav } from '../types/components/navigation/pn-page-nav/menu/pn-page-nav';
export { defineCustomElement as defineCustomElementPnPageNav } from './pn-page-nav';
export { PnPageNavDropdownItem as PnPageNavDropdownItem } from '../types/components/navigation/pn-page-nav/dropdown-item/pn-page-nav-dropdown-item';
export { defineCustomElement as defineCustomElementPnPageNavDropdownItem } from './pn-page-nav-dropdown-item';
export { PnPageNavItem as PnPageNavItem } from '../types/components/navigation/pn-page-nav/item/pn-page-nav-item';
export { defineCustomElement as defineCustomElementPnPageNavItem } from './pn-page-nav-item';
export { PnPagination as PnPagination } from '../types/components/navigation/pn-pagination/pn-pagination';
export { defineCustomElement as defineCustomElementPnPagination } from './pn-pagination';
export { PnProgressBar as PnProgressBar } from '../types/components/feedback/pn-progress-bar/pn-progress-bar';
export { defineCustomElement as defineCustomElementPnProgressBar } from './pn-progress-bar';
export { PnProgressIndicator as PnProgressIndicator } from '../types/components/feedback/pn-progress-indicator/pn-progress-indicator';
export { defineCustomElement as defineCustomElementPnProgressIndicator } from './pn-progress-indicator';
export { PnProgressIndicatorStep as PnProgressIndicatorStep } from '../types/components/feedback/pn-progress-indicator/pn-progress-indicator-step/pn-progress-indicator-step';
export { defineCustomElement as defineCustomElementPnProgressIndicatorStep } from './pn-progress-indicator-step';
export { PnProgressStepper as PnProgressStepper } from '../types/components/feedback/pn-progress-stepper/pn-progress-stepper';
export { defineCustomElement as defineCustomElementPnProgressStepper } from './pn-progress-stepper';
export { PnRadioButton as PnRadioButton } from '../types/components/input/pn-radio-button/pn-radio-button';
export { defineCustomElement as defineCustomElementPnRadioButton } from './pn-radio-button';
export { PnRange as PnRange } from '../types/components/input/pn-range/pn-range';
export { defineCustomElement as defineCustomElementPnRange } from './pn-range';
export { PnReadOnlyButton as PnReadOnlyButton } from '../types/components/buttons/pn-read-only-button/pn-read-only-button';
export { defineCustomElement as defineCustomElementPnReadOnlyButton } from './pn-read-only-button';
export { PnSearchField as PnSearchField } from '../types/components/input/pn-search-field/pn-search-field';
export { defineCustomElement as defineCustomElementPnSearchField } from './pn-search-field';
export { PnSegment as PnSegment } from '../types/components/input/pn-segmented-control/segment/pn-segment';
export { defineCustomElement as defineCustomElementPnSegment } from './pn-segment';
export { PnSegmentedControl as PnSegmentedControl } from '../types/components/input/pn-segmented-control/pn-segmented-control';
export { defineCustomElement as defineCustomElementPnSegmentedControl } from './pn-segmented-control';
export { PnSelect as PnSelect } from '../types/components/input/pn-select/pn-select';
export { defineCustomElement as defineCustomElementPnSelect } from './pn-select';
export { PnSpinner as PnSpinner } from '../types/components/feedback/pn-spinner/pn-spinner';
export { defineCustomElement as defineCustomElementPnSpinner } from './pn-spinner';
export { PnTab as PnTab } from '../types/components/navigation/pn-tablist/tab/pn-tab';
export { defineCustomElement as defineCustomElementPnTab } from './pn-tab';
export { PnTable as PnTable } from '../types/components/content/pn-table/pn-table';
export { defineCustomElement as defineCustomElementPnTable } from './pn-table';
export { PnTablist as PnTablist } from '../types/components/navigation/pn-tablist/pn-tablist';
export { defineCustomElement as defineCustomElementPnTablist } from './pn-tablist';
export { PnTag as PnTag } from '../types/components/content/pn-tag/pn-tag';
export { defineCustomElement as defineCustomElementPnTag } from './pn-tag';
export { PnTextLink as PnTextLink } from '../types/components/navigation/pn-text-link/pn-text-link';
export { defineCustomElement as defineCustomElementPnTextLink } from './pn-text-link';
export { PnTextarea as PnTextarea } from '../types/components/input/pn-textarea/pn-textarea';
export { defineCustomElement as defineCustomElementPnTextarea } from './pn-textarea';
export { PnTile as PnTile } from '../types/components/navigation/pn-tile/pn-tile';
export { defineCustomElement as defineCustomElementPnTile } from './pn-tile';
export { PnToast as PnToast } from '../types/components/feedback/pn-toast/pn-toast';
export { defineCustomElement as defineCustomElementPnToast } from './pn-toast';
export { PnToggleSwitch as PnToggleSwitch } from '../types/components/input/pn-toggle-switch/pn-toggle-switch';
export { defineCustomElement as defineCustomElementPnToggleSwitch } from './pn-toggle-switch';
export { PnTooltip as PnTooltip } from '../types/components/feedback/pn-tooltip/pn-tooltip';
export { defineCustomElement as defineCustomElementPnTooltip } from './pn-tooltip';
export { PnWizard as PnWizard } from '../types/components/feedback/pn-wizard/pn-wizard';
export { defineCustomElement as defineCustomElementPnWizard } from './pn-wizard';
export { PnZipcodeSearch as PnZipcodeSearch } from '../types/components/web-components/pn-zipcode-search/pn-zipcode-search';
export { defineCustomElement as defineCustomElementPnZipcodeSearch } from './pn-zipcode-search';

/**
 * Get the base path to where the assets can be found. Use "setAssetPath(path)"
 * if the path needs to be customized.
 */
export declare const getAssetPath: (path: string) => string;

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