import { ReactNode } from 'react'; import { ProviderProps } from './Provider'; import { Store, TemplateData } from './types'; type TemplatesControlInnerProps = { toggleContent?: ReactNode; disabled?: boolean; className?: string; testId?: string; }; export type TemplatesControlProps = { /** * Id of the currently selected template */ currentTemplateId?: ProviderProps['currentTemplateId']; /** * Full data of the current template */ templateSettings?: ProviderProps['templateSettings']; /** * Aka "default templates", preset by app itself */ presetTemplates?: ProviderProps['presetTemplates']; foldersEnabled?: ProviderProps['foldersEnabled']; /** * If `true` - will reload templates list when opening popover * @default true */ reloadListOnOpen?: ProviderProps['reloadListOnOpen']; publishEnabled?: ProviderProps['publishEnabled']; templateIconColors?: ProviderProps['templateIconColors']; /** * @default templateIconColors[0] */ defaultTemplateIconColor?: ProviderProps['defaultTemplateIconColor']; templateIconMap?: ProviderProps['templateIconMap']; defaultTemplateIcon?: ProviderProps['defaultTemplateIcon']; /** * Called when current template is changed * * ⚠️⚠️⚠️ This callback is called asynchronously, which may make several state setters produce several state updates, * leading to incorrect data fed into TemplatesControl when template data "lags behind" template id. * Generally, template id and template data should be processed together as an atomic object. */ onChange?: ProviderProps['onChange']; /** * Used to determine template id selected on initial load or when current template is deleted. * * Can be used to enforce "App always has a template" workflow */ getDefaultTemplate?: ProviderProps['getDefaultTemplate']; /** * Filters/replaces templates on initial load. Receives a list of templates already filtered according user's access rights */ filterInitialTemplates?: Store['hooks']['filterInitialTemplates']; /** * Additional controls to render in template menu. `TemplatesControlAdditionalControlProps` type is exported for convenience. */ templateControls?: Store['templateControls']; /** * Content to show inside of toggle */ toggleContent?: ReactNode; } & Omit; export declare const TemplatesControl: { ({ testId, className, disabled, toggleContent, ...providerProps }: TemplatesControlProps): JSX.Element; Provider: ({ children, presetTemplates, onChange, foldersEnabled, templateIconColors, templateIconMap, defaultTemplateIcon, currentTemplateId, templateSettings, publishEnabled, getDefaultTemplate, defaultTemplateIconColor, filterInitialTemplates, templateControls, reloadListOnOpen, }: ProviderProps) => JSX.Element; Toggle: import("react").ForwardRefExoticComponent>; Popover: ({ anchorEl, placement, disabled }: import("./Popover").PopoverProps) => JSX.Element | null; ToggleDisplayDefault: ({ showNewTag }: import("./ToggleDisplayDefault").ToggleDisplayDefaultProps) => JSX.Element; GetHeaderElement: (target?: HTMLElement | null | undefined) => HTMLElement | undefined; }; export {}; //# sourceMappingURL=TemplatesControl.d.ts.map