export interface UseCalloutOptions {
    /** Initial open state. Defaults to `true` — callouts start visible. */
    defaultOpen?: boolean;
    /** localStorage key (without prefix) used to persist the dismissed state.
     * Omit for session-only behaviour. */
    persistKey?: string;
    /** Fires once when the callout transitions from open → dismissed. */
    onDismiss?: () => void;
}
export interface UseCalloutReturn {
    /** Current visibility — `false` after dismissal. */
    open: boolean;
    /** True when the callout has been dismissed (either this session or via
     * persisted state). Convenient for `if (callout.dismissed) return null`. */
    dismissed: boolean;
    /** Programmatically open the callout (no-op if already open). */
    show: () => void;
    /** Dismiss the callout. Also writes to localStorage when `persistKey` is set. */
    dismiss: () => void;
    /** Toggle open ⇄ dismissed. */
    toggle: () => void;
    /** Clear the persisted dismissal (if any) AND re-open the callout. Use
     * for "Show tip again" / settings reset surfaces. */
    reset: () => void;
    /** Spread directly onto `<Callout>` — wires `open` + `onDismiss`. */
    calloutProps: {
        open: boolean;
        onDismiss: () => void;
    };
}
export declare function useCallout(options?: UseCalloutOptions): UseCalloutReturn;
//# sourceMappingURL=useCallout.d.ts.map