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

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