import type { Meta } from '@storybook/react-vite';
import { type ButtonHTMLAttributes, type ComponentType, type ReactNode } from 'react';
import styles from './HookDocs.module.scss';
declare const haikuInspirationUrl = "https://github.com/DavidHDev/haiku";
declare const haikuInspirationNote = "Inspiration: https://github.com/DavidHDev/haiku";
type HookCategoryTitle = 'Browser APIs' | 'DOM and Input' | 'Timing and Lifecycle' | 'Storage and State';
type HookPageMetadata = {
category: HookCategoryTitle;
cleanup: string[];
exportPath: string;
purpose: string;
relatedExports?: string[];
returnShape: string[];
signature: string;
title: string;
usage: string;
whenToUse: string[];
browserSupport: string[];
};
type HookDocsLayoutProps = {
demo: ReactNode;
hookPage: HookPageMetadata;
};
type HookDemo = ComponentType;
type StorybookParameters = NonNullable;
declare function createHookStoryParameters(hookPage: HookPageMetadata): StorybookParameters;
declare function HookDocsLayout({ demo, hookPage }: HookDocsLayoutProps): import("react/jsx-runtime").JSX.Element;
declare function HookUsage({ usage }: {
usage: string;
}): import("react/jsx-runtime").JSX.Element;
declare function HookSignature({ signature }: {
signature: string;
}): import("react/jsx-runtime").JSX.Element;
declare function HookReturnShape({ returnShape }: {
returnShape: string[];
}): import("react/jsx-runtime").JSX.Element;
declare function HookNotes({ notes, title }: {
notes: string[];
title: string;
}): import("react/jsx-runtime").JSX.Element;
declare function RelatedExports({ exports }: {
exports: string[];
}): import("react/jsx-runtime").JSX.Element;
declare function DemoValue({ label, value }: {
label: string;
value: ReactNode;
}): import("react/jsx-runtime").JSX.Element;
declare function DemoButton({ children, type, ...buttonProps }: ButtonHTMLAttributes): import("react/jsx-runtime").JSX.Element;
declare function DemoActions({ children }: {
children: ReactNode;
}): import("react/jsx-runtime").JSX.Element;
declare function DemoStack({ children }: {
children: ReactNode;
}): import("react/jsx-runtime").JSX.Element;
declare function ToggleMount({ activateLabel, children, }: {
activateLabel: string;
children: ReactNode;
}): import("react/jsx-runtime").JSX.Element;
declare function useUnmount(callback: VoidFunction): void;
declare function useButtonTarget(): {
ref: (element: TElement | null) => void;
target: TElement | null;
};
export { DemoActions, DemoButton, DemoStack, DemoValue, HookDocsLayout, HookNotes, HookReturnShape, HookSignature, HookUsage, RelatedExports, ToggleMount, createHookStoryParameters, haikuInspirationNote, haikuInspirationUrl, styles, useButtonTarget, useUnmount, };
export type { HookCategoryTitle, HookDemo, HookPageMetadata };