import { ReactElement, ReactNode, ComponentType } from 'react'; declare const SlotKey = "__slot__"; interface SlotableType { [SlotKey]?: string; } declare function slotDecorator

(slotName: string, ElementType: P): P; declare function getSlotKey(element: ReactElement): any; type SlotElements = Record; declare function getRawSlots(children: ReactNode, slots: string[]): Record; declare function useRawSlots(children: ReactNode, slots: string[]): Record; interface SlotOptions { _: { defaultWrapper?: ComponentType; required?: string[] | ((slotElements: SlotElements) => string[]); }; } type GetSlotsReturn = Partial, ReactElement>>; declare function getSlots(children: ReactNode, { _, ...slots }: T): GetSlotsReturn; type UseSlotsReturn = GetSlotsReturn; declare function useSlots(children: ReactNode, slots: T): UseSlotsReturn; export { type SlotElements, type SlotOptions, type SlotableType, getRawSlots, getSlotKey, getSlots, slotDecorator as slot, useRawSlots, useSlots };