import { FC, ReactNode } from "react"; export interface ConfigurableIcons { /** * The general icon for navigating backwards or closing an item to the left. */ back?: ReactNode; /** * The general icon to use for checkboxes. */ checkbox?: ReactNode; /** * The general icon to use for dropdown menus or content that expands * vertically in a new material instead of inline like the `expander` icon. */ dropdown?: ReactNode; /** * The general icon to use for downloading content. */ download?: ReactNode; /** * The general icon to use for expanding content vertically. */ expander?: ReactNode; /** * The general icon for navigating forwards or closing an item to the right. * This is also used internally for nested dropdown menus. */ forward?: ReactNode; /** * The general icon to use for displaying a main navigation menu. */ menu?: ReactNode; /** * The general icon for displaying notifications. This is used internally in * the `BadgedButton` in the `@react-md/badge` package. */ notification?: ReactNode; /** * The general icon for temporarily displaying a password's field value as * plain text. */ password?: ReactNode; /** * The general icon to use for radio buttons. */ radio?: ReactNode; /** * The general icon to use for showing that something has been selected that * is not a radio or checkbox. This is used internally for the `Chip` in the * `@react-md/chip` package. */ selected?: ReactNode; /** * The general icon for sorting content. This defaults to the sort ascending * behavior. */ sort?: ReactNode; } export declare type ConfiguredIcons = Required; /** * Gets one of the configured icons from the `IconProvider`. This is probably * just for use within `react-md`, but might be helpful outside if you want to * reuse the existing icon configuration for other custom components. * * If te second argument is provided and it is not `undefined`, that value will * be used instead of the inherited icon type. * * @param name The name of the icon you want to use. * @param override An optional override to use instead of the inherited icon. * @return The overridden icon value or the inherited icon. */ export declare function useIcon(name: keyof ConfigurableIcons, override?: ReactNode | undefined): ReactNode; export interface IconProviderProps extends ConfigurableIcons { /** * The children that should inherit the icon provider context. This is * required since this component is pretty much worthless to use if you don't * inherit the overridden icons. */ children: ReactNode; } /** * The `IconProvider` component is used to override all the default icons within * `react-md` with a newly defined set of icons. This is super nice since you * won't need to create new component wrappers for all the components within * `react-md` if you want to switch to SVG icons instead of the default font * icons. */ declare const IconProvider: FC; export default IconProvider;