import { type ComponentPropsWithoutRef, type ReactNode } from "react";
export type CalloutVariant = "tip" | "info" | "warning" | "danger" | "success" | "neutral";
export type CalloutSize = "sm" | "md" | "lg";
export interface CalloutProps extends Omit<ComponentPropsWithoutRef<"div">, "color" | "title"> {
    variant?: CalloutVariant;
    size?: CalloutSize;
    /** Heading shown above the body content. */
    title?: ReactNode;
    /** Override the default per-variant icon. Pass `null` to suppress entirely. */
    icon?: ReactNode | null;
    /** Render a dismiss `×` button on the trailing edge. */
    dismissible?: boolean;
    /** Fires when the dismiss button is clicked. */
    onDismiss?: () => void;
    /** Accessible label for the dismiss button. Defaults to "Dismiss". */
    dismissLabel?: string;
    /** Override the inferred ARIA role. `danger` → `role="alert"`; the rest
     * stay an unlabelled inline block (callouts are usually documentation,
     * not live regions). Override explicitly when needed. */
    role?: ComponentPropsWithoutRef<"div">["role"];
    /** Render Callout's styling onto a custom child element (Radix-style
     * Slot). Internal slots (icon, title, dismiss) are NOT rendered — the
     * consumer's element fully owns content. Useful for "callout-as-link"
     * or wrapping a router-link as a tip card. */
    asChild?: boolean;
    /** Controls whether the callout is mounted. Pair with `useCallout()` for
     * declarative dismiss + persistence, or wire to your own state. When
     * omitted, the callout is always mounted (the regular static shape). */
    open?: boolean;
    /** Disable the enter/exit animation. Use when the callout is part of a
     * larger animation managed externally. */
    disableAnimation?: boolean;
    children?: ReactNode;
}
export declare const Callout: import("react").ForwardRefExoticComponent<CalloutProps & import("react").RefAttributes<HTMLDivElement>>;
//# sourceMappingURL=Callout.d.ts.map