import { type ComponentPropsWithoutRef, type MouseEvent, type ReactNode } from "react";
import { type CardRadius } from "../Card";
export type IntegrationCategory = "communication" | "incident" | "ticketing" | "source-control" | "analytics" | "identity" | "storage" | "ai" | "other";
export type IntegrationStatus = "connected" | "not-configured" | "error" | "coming-soon" | "deprecated";
export interface IntegrationScopeChip {
    /** Display label (e.g. "channels:read", "issues:write"). */
    label: ReactNode;
    /** Visual tone — drives chip color. */
    tone?: "read" | "write" | "admin" | "neutral";
}
export interface IntegrationCardAction {
    /** Display label. */
    label: string;
    /** Optional icon. */
    icon?: ReactNode;
    /** Render with primary emphasis (filled accent button). */
    primary?: boolean;
    /** Mark as destructive (filled red, used for "Disconnect"). */
    destructive?: boolean;
    onClick?: (e: MouseEvent<HTMLButtonElement>) => void;
    disabled?: boolean;
}
export interface IntegrationCardProps extends Omit<ComponentPropsWithoutRef<"div">, "title" | "onChange" | "onClick" | "onDrag" | "onDragStart" | "onDragEnd" | "onAnimationStart"> {
    /** Integration name (e.g. "Slack", "PagerDuty"). */
    name: ReactNode;
    /** Heading level for the name. Default `"h3"`. */
    nameAs?: "h1" | "h2" | "h3" | "h4" | "h5" | "h6";
    /** Brand logo or icon. */
    logo?: ReactNode;
    /** Functional category — drives the category chip. */
    category?: IntegrationCategory;
    /** Override the category chip label. */
    categoryLabel?: ReactNode;
    /** Connection status — drives status pill + dot color. */
    status?: IntegrationStatus;
    /** Override the status pill label. */
    statusLabel?: ReactNode;
    /** Tagline / short description (1–2 lines). */
    description?: ReactNode;
    /**
     * Capability scope chips. Use to surface what the integration can
     * read / write / admin once connected (e.g. "channels:read",
     * "incidents:write"). Different from connector auth — these are
     * *capabilities*, not credential types.
     */
    scopes?: IntegrationScopeChip[];
    /** Free-form tag chips (e.g. "popular", "official", "beta"). */
    tags?: ReactNode[];
    /** Connected-at / last-used timestamp. */
    connectedAt?: ReactNode;
    /** Action buttons in the footer (Connect, Configure, Disconnect). */
    actions?: IntegrationCardAction[];
    /** Footer link slot (e.g. "Docs ↗"). Rendered right-aligned. */
    footer?: ReactNode;
    /** Right-aligned trailing slot in the header. */
    trailing?: ReactNode;
    /** Visual size. Default `"md"`. */
    size?: "sm" | "md" | "lg";
    /** Render the card as a real `<a>` when href is provided. */
    href?: string;
    /** Whole-card click handler. */
    onClick?: (e: MouseEvent<HTMLDivElement>) => void;
    /** Disable interaction. */
    disabled?: boolean;
    /** Card corner radius (passes through). */
    radius?: CardRadius;
}
export declare const IntegrationCard: import("react").ForwardRefExoticComponent<IntegrationCardProps & import("react").RefAttributes<HTMLDivElement>>;
//# sourceMappingURL=IntegrationCard.d.ts.map