import type { ActionQueue } from "../../../utils/actionQueue";
/**
 * Position options for OfflineIndicator
 */
export type OfflineIndicatorPosition = "top" | "bottom" | "top-left" | "top-right" | "bottom-left" | "bottom-right";
/**
 * Visual variant for OfflineIndicator
 */
export type OfflineIndicatorVariant = "banner" | "toast";
/**
 * Props for OfflineIndicator component
 */
export interface OfflineIndicatorProps {
    /** Position of the indicator */
    position?: OfflineIndicatorPosition;
    /** Show count of queued actions */
    showQueueCount?: boolean;
    /** Custom action queue instance */
    queue?: ActionQueue;
    /** Visual style variant */
    variant?: OfflineIndicatorVariant;
    /** Auto-hide when back online */
    autoHideOnline?: boolean;
    /** Delay before auto-hiding (ms) */
    autoHideDelay?: number;
    /** Custom offline message */
    offlineMessage?: string;
    /** Custom online message (shown briefly when reconnecting) */
    onlineMessage?: string;
    /** Additional class names */
    className?: string;
}
/**
 * Theme configuration for OfflineIndicator
 */
export interface OfflineIndicatorTheme {
    /** Base container styles */
    base?: string;
    /** Position-specific styles */
    positions?: Record<OfflineIndicatorPosition, string>;
    /** Variant-specific styles */
    variants?: {
        banner?: string;
        badge?: string;
        toast?: string;
    };
    /** Offline state styles */
    offline?: string;
    /** Online (reconnected) state styles */
    online?: string;
    /** Icon styles */
    icon?: string;
    /** Message text styles */
    message?: string;
    /** Queue count styles */
    queueCount?: string;
}
