/* dds custom elements */
export { Avatar as DdsAvatar } from '../types/avatar/avatar';
export { defineCustomElement as defineCustomElementDdsAvatar } from './dds-avatar';
export { Banner as DdsBanner } from '../types/banner/banner';
export { defineCustomElement as defineCustomElementDdsBanner } from './dds-banner';
export { Box as DdsBox } from '../types/box/box';
export { defineCustomElement as defineCustomElementDdsBox } from './dds-box';
export { Button as DdsButton } from '../types/button/button';
export { defineCustomElement as defineCustomElementDdsButton } from './dds-button';
export { ButtonGroup as DdsButtonGroup } from '../types/button-group/button-group';
export { defineCustomElement as defineCustomElementDdsButtonGroup } from './dds-button-group';
export { Chart as DdsChart } from '../types/chart/chart';
export { defineCustomElement as defineCustomElementDdsChart } from './dds-chart';
export { Icon as DdsChip } from '../types/chip/chip';
export { defineCustomElement as defineCustomElementDdsChip } from './dds-chip';
export { ColorScheme as DdsColorScheme } from '../types/color-scheme/color-scheme';
export { defineCustomElement as defineCustomElementDdsColorScheme } from './dds-color-scheme';
export { Divider as DdsDivider } from '../types/divider/divider';
export { defineCustomElement as defineCustomElementDdsDivider } from './dds-divider';
export { Fieldset as DdsFieldset } from '../types/fieldset/fieldset';
export { defineCustomElement as defineCustomElementDdsFieldset } from './dds-fieldset';
export { Flag as DdsFlag } from '../types/flag/flag';
export { defineCustomElement as defineCustomElementDdsFlag } from './dds-flag';
export { Grid as DdsGrid } from '../types/grid/grid';
export { defineCustomElement as defineCustomElementDdsGrid } from './dds-grid';
export { GridItem as DdsGridItem } from '../types/grid-item/grid-item';
export { defineCustomElement as defineCustomElementDdsGridItem } from './dds-grid-item';
export { Heading as DdsHeading } from '../types/heading/heading';
export { defineCustomElement as defineCustomElementDdsHeading } from './dds-heading';
export { Icon as DdsIcon } from '../types/icon/icon';
export { defineCustomElement as defineCustomElementDdsIcon } from './dds-icon';
export { MoneyField as DdsMoneyField } from '../types/money-field/money-field';
export { defineCustomElement as defineCustomElementDdsMoneyField } from './dds-money-field';
export { Text as DdsParagraph } from '../types/paragraph/paragraph';
export { defineCustomElement as defineCustomElementDdsParagraph } from './dds-paragraph';
export { Popover as DdsPopover } from '../types/popover/popover';
export { defineCustomElement as defineCustomElementDdsPopover } from './dds-popover';
export { Provider as DdsProvider } from '../types/provider/provider';
export { defineCustomElement as defineCustomElementDdsProvider } from './dds-provider';
export { Radio as DdsRadio } from '../types/radio/radio';
export { defineCustomElement as defineCustomElementDdsRadio } from './dds-radio';
export { Section as DdsSection } from '../types/section/section';
export { defineCustomElement as defineCustomElementDdsSection } from './dds-section';
export { Spacer as DdsSpacer } from '../types/spacer/spacer';
export { defineCustomElement as defineCustomElementDdsSpacer } from './dds-spacer';
export { Sparkline as DdsSparkline } from '../types/sparkline/sparkline';
export { defineCustomElement as defineCustomElementDdsSparkline } from './dds-sparkline';
export { Spinner as DdsSpinner } from '../types/spinner/spinner';
export { defineCustomElement as defineCustomElementDdsSpinner } from './dds-spinner';
export { Stack as DdsStack } from '../types/stack/stack';
export { defineCustomElement as defineCustomElementDdsStack } from './dds-stack';
export { Switch as DdsSwitch } from '../types/switch/switch';
export { defineCustomElement as defineCustomElementDdsSwitch } from './dds-switch';
export { Tab as DdsTab } from '../types/tab/tab';
export { defineCustomElement as defineCustomElementDdsTab } from './dds-tab';
export { Text as DdsText } from '../types/text/text';
export { defineCustomElement as defineCustomElementDdsText } from './dds-text';
export { Label as DdsTextField } from '../types/text-field/text-field';
export { defineCustomElement as defineCustomElementDdsTextField } from './dds-text-field';

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