import { AccessibilityProps } from '../shared/index.js';

type PresenceStatus = 'online' | 'offline' | 'away' | 'busy' | 'dnd';
interface PresenceProps {
    /** The presence status to display */
    status: PresenceStatus;
    /** Show a text label alongside the indicator */
    showLabel?: boolean;
    /** Custom label override */
    label?: string;
}
interface PresenceAPI {
    /** ARIA attributes for the indicator */
    ariaProps: Partial<AccessibilityProps> & Record<string, unknown>;
    /** CSS color for the status dot */
    color: string;
    /** Human-readable label for the status */
    label: string;
    /** Whether to show the label text */
    showLabel: boolean;
    /** The current status */
    status: PresenceStatus;
}
declare const STATUS_COLORS: Record<PresenceStatus, string>;
declare const STATUS_LABELS: Record<PresenceStatus, string>;

declare function createPresence(props: PresenceProps): PresenceAPI;

declare const presenceDotVariants: (props?: ({
    status?: "online" | "offline" | "away" | "busy" | "dnd" | undefined;
    size?: "sm" | "md" | "lg" | undefined;
} & {
    className?: string;
}) | undefined) => string;
declare const presenceContainerStyles = "inline-flex items-center gap-1.5";
declare const presenceLabelStyles = "text-sm text-muted-foreground";

export { type PresenceAPI, type PresenceProps, type PresenceStatus, STATUS_COLORS, STATUS_LABELS, createPresence, presenceContainerStyles, presenceDotVariants, presenceLabelStyles };
