type MagicPortalTargetProps<T extends React.ElementType = 'div'> = Omit<React.ComponentPropsWithoutRef<T>, 'children' | 'ref'> & {
    as?: T | null;
    /**
     * MagicPortal do not support server-side rendering. By default, it will render nothing on the server.
     *
     * However, you can use `ssrFallback` to emit a fallback (e.g. skeleton) into server-rendered HTML.
     */
    ssrFallback?: React.ReactNode | null;
};
/** @see https://foxact.skk.moe/magic-portal */
declare function createMagicPortal(name?: string): [
    PortalProvider: React.ComponentType<React.PropsWithChildren>,
    PortalTarget: <T extends React.ElementType = 'div'>(props: MagicPortalTargetProps<T>) => React.ReactElement,
    PortalContent: (props: React.PropsWithChildren) => React.ReactPortal | null
];

export { createMagicPortal };
export type { MagicPortalTargetProps };
