
import { C as Run } from "./instanceInfo-D9Pe6gIo.js";
import * as react3 from "react";
import { ReactNode } from "react";
import * as react_jsx_runtime10 from "react/jsx-runtime";

//#region src/components/run/RunStatusBadge.d.ts
/**
 * Run status types
 */
type RunStatus = "Running" | "Finished" | "Failed" | "Cancelled";
/**
 * Infer run status from Run object
 *
 * When status is not explicitly set, infers from result/error:
 * - Has result -> "Finished"
 * - Has error -> "Failed"
 * - Otherwise -> "Finished" (default)
 *
 * @param run - The run object to infer status from
 * @returns The inferred run status
 *
 * @example
 * ```tsx
 * const status = inferRunStatus(run);
 * // Returns run.status if set, otherwise infers from result/error
 * ```
 */
declare function inferRunStatus(run: Run): RunStatus;
/**
 * Props for the RunStatusBadge component
 */
interface RunStatusBadgeProps {
  /** Run status */
  status: RunStatus;
  /** Whether to show the spinner for running state */
  showSpinner?: boolean;
  /** Text size variant */
  size?: "small" | "medium";
  /** Optional CSS class */
  className?: string;
}
/**
 * RunStatusBadge Component
 *
 * A pure presentation component for displaying run status with color coding.
 *
 * @example Basic usage
 * ```tsx
 * import { RunStatusBadge } from '@datarecce/ui/primitives';
 *
 * function RunItem({ run }) {
 *   return (
 *     <div>
 *       <span>{run.name}</span>
 *       <RunStatusBadge status={run.status} />
 *     </div>
 *   );
 * }
 * ```
 *
 * @example With spinner
 * ```tsx
 * <RunStatusBadge
 *   status="Running"
 *   showSpinner
 * />
 * ```
 */
declare function RunStatusBadgeComponent({
  status,
  showSpinner,
  size,
  className
}: RunStatusBadgeProps): react_jsx_runtime10.JSX.Element;
declare const RunStatusBadge: react3.MemoExoticComponent<typeof RunStatusBadgeComponent>;
/**
 * Format date relative to today
 */
declare function formatRunDate(date: Date | null): string | null;
/**
 * Format date and time relative to today
 */
declare function formatRunDateTime(date: Date | null): string | null;
/**
 * Props for RunStatusWithDate component
 */
interface RunStatusWithDateProps {
  /** Run status */
  status: RunStatus;
  /** Run timestamp */
  runAt?: string | Date;
  /** Optional CSS class */
  className?: string;
}
/**
 * RunStatusWithDate Component
 *
 * Displays status badge with formatted date/time.
 *
 * @example
 * ```tsx
 * <RunStatusWithDate
 *   status="Finished"
 *   runAt={run.run_at}
 * />
 * ```
 */
declare function RunStatusWithDateComponent({
  status,
  runAt,
  className
}: RunStatusWithDateProps): react_jsx_runtime10.JSX.Element;
declare const RunStatusWithDate: react3.MemoExoticComponent<typeof RunStatusWithDateComponent>;
/**
 * Props for RunStatusAndDate component
 */
interface RunStatusAndDateProps {
  /** The run object to display status and date for */
  run: Run;
  /** Optional CSS class */
  className?: string;
}
/**
 * RunStatusAndDate Component
 *
 * Displays run status badge with formatted date/time.
 * Accepts a Run object and infers status when not explicitly set.
 *
 * @example
 * ```tsx
 * import { RunStatusAndDate } from '@datarecce/ui/components/run';
 *
 * function RunItem({ run }) {
 *   return (
 *     <div>
 *       <span>{run.name}</span>
 *       <RunStatusAndDate run={run} />
 *     </div>
 *   );
 * }
 * ```
 */
declare function RunStatusAndDateComponent({
  run,
  className
}: RunStatusAndDateProps): react_jsx_runtime10.JSX.Element;
declare const RunStatusAndDate: react3.MemoExoticComponent<typeof RunStatusAndDateComponent>;
//#endregion
//#region src/components/run/RunList.d.ts
/**
 * Run data for list display
 */
interface RunListItemData {
  /** Unique run ID */
  id: string;
  /** Run name */
  name?: string;
  /** Run type identifier */
  type: string;
  /** Run status */
  status: RunStatus;
  /** Run timestamp */
  runAt?: string;
  /** Associated check ID (if linked to a check) */
  checkId?: string;
}
/**
 * Props for a single run list item
 */
interface RunListItemProps {
  /** Run data */
  run: RunListItemData;
  /** Whether this item is selected */
  isSelected?: boolean;
  /** Icon for the run type */
  icon?: ReactNode;
  /** Callback when item is clicked */
  onClick?: (runId: string) => void;
  /** Callback when "add to checklist" is clicked */
  onAddToChecklist?: (runId: string) => void;
  /** Callback when "go to check" is clicked */
  onGoToCheck?: (checkId: string) => void;
  /** Icon for "add to checklist" action */
  addToChecklistIcon?: ReactNode;
  /** Icon for "go to check" action */
  goToCheckIcon?: ReactNode;
  /** Hide add to checklist action */
  hideAddToChecklist?: boolean;
  /** Optional CSS class */
  className?: string;
}
/**
 * RunListItem Component
 *
 * A single item in a run list with selection state and actions.
 *
 * @example
 * ```tsx
 * <RunListItem
 *   run={run}
 *   isSelected={selectedRunId === run.id}
 *   icon={<QueryIcon />}
 *   onClick={(id) => setSelectedRunId(id)}
 *   onAddToChecklist={(id) => addRunToChecklist(id)}
 * />
 * ```
 */
declare function RunListItemComponent({
  run,
  isSelected,
  icon,
  onClick,
  onAddToChecklist,
  onGoToCheck,
  addToChecklistIcon,
  goToCheckIcon,
  hideAddToChecklist,
  className
}: RunListItemProps): react_jsx_runtime10.JSX.Element;
declare const RunListItem: react3.MemoExoticComponent<typeof RunListItemComponent>;
/**
 * Props for RunList component
 */
interface RunListProps {
  /** List of runs to display */
  runs: RunListItemData[];
  /** Currently selected run ID */
  selectedId?: string | null;
  /** Whether the list is loading */
  isLoading?: boolean;
  /** Callback when a run is selected */
  onRunSelect?: (runId: string) => void;
  /** Callback when "add to checklist" is clicked */
  onAddToChecklist?: (runId: string) => void;
  /** Callback when "go to check" is clicked */
  onGoToCheck?: (checkId: string) => void;
  /** Function to get icon for run type */
  getRunIcon?: (runType: string) => ReactNode;
  /** Hide add to checklist action */
  hideAddToChecklist?: boolean;
  /** List title */
  title?: string;
  /** Header action buttons */
  headerActions?: ReactNode;
  /** Empty state message */
  emptyMessage?: string;
  /** Loading state message */
  loadingMessage?: string;
  /** Group runs by date */
  groupByDate?: boolean;
  /** Icon for "add to checklist" action - passed to all list items */
  addToChecklistIcon?: ReactNode;
  /** Icon for "go to check" action - passed to all list items */
  goToCheckIcon?: ReactNode;
  /** Optional CSS class */
  className?: string;
}
/**
 * RunList Component
 *
 * A pure presentation component for displaying a list of runs with
 * selection, actions, and optional date grouping.
 *
 * @example Basic usage
 * ```tsx
 * import { RunList } from '@datarecce/ui/primitives';
 *
 * function HistoryPanel({ runs }) {
 *   const [selectedId, setSelectedId] = useState(null);
 *
 *   return (
 *     <RunList
 *       runs={runs}
 *       selectedId={selectedId}
 *       onRunSelect={setSelectedId}
 *       title="History"
 *       groupByDate
 *     />
 *   );
 * }
 * ```
 *
 * @example With custom icons
 * ```tsx
 * <RunList
 *   runs={runs}
 *   selectedId={selectedId}
 *   onRunSelect={setSelectedId}
 *   getRunIcon={(type) => {
 *     switch (type) {
 *       case 'query': return <SqlIcon />;
 *       case 'profile': return <ProfileIcon />;
 *       default: return <DefaultIcon />;
 *     }
 *   }}
 * />
 * ```
 */
declare function RunListComponent({
  runs,
  selectedId,
  isLoading,
  onRunSelect,
  onAddToChecklist,
  onGoToCheck,
  getRunIcon,
  hideAddToChecklist,
  title,
  headerActions,
  emptyMessage,
  loadingMessage,
  groupByDate,
  addToChecklistIcon,
  goToCheckIcon,
  className
}: RunListProps): react_jsx_runtime10.JSX.Element;
declare const RunList: react3.MemoExoticComponent<typeof RunListComponent>;
//#endregion
//#region src/components/run/RunProgress.d.ts
/**
 * Progress variant types
 */
type RunProgressVariant = "spinner" | "linear" | "circular";
/**
 * Props for the RunProgress component
 */
interface RunProgressProps {
  /** Run status */
  status: RunStatus;
  /** Progress percentage (0-100) for determinate progress */
  progress?: number;
  /** Progress message (e.g., "Querying base...") */
  message?: string;
  /** Error message when status is 'failed' */
  errorMessage?: string;
  /** Progress display variant */
  variant?: RunProgressVariant;
  /** Show status badge */
  showStatus?: boolean;
  /** Optional icon to display */
  icon?: ReactNode;
  /** Optional CSS class */
  className?: string;
}
/**
 * RunProgress Component
 *
 * A pure presentation component for displaying run progress with
 * optional progress bar, message, and status.
 *
 * @example Basic spinner
 * ```tsx
 * import { RunProgress } from '@datarecce/ui/primitives';
 *
 * function RunningIndicator({ run }) {
 *   return (
 *     <RunProgress
 *       status={run.status}
 *       message="Executing query..."
 *     />
 *   );
 * }
 * ```
 *
 * @example With progress bar
 * ```tsx
 * <RunProgress
 *   status="Running"
 *   variant="linear"
 *   progress={65}
 *   message="Processing records: 65,000 / 100,000"
 * />
 * ```
 *
 * @example Error state
 * ```tsx
 * <RunProgress
 *   status="Failed"
 *   errorMessage="Connection timeout after 30 seconds"
 * />
 * ```
 */
declare function RunProgressComponent({
  status,
  progress,
  message,
  errorMessage,
  variant,
  showStatus,
  icon,
  className
}: RunProgressProps): react_jsx_runtime10.JSX.Element;
declare const RunProgress: react3.MemoExoticComponent<typeof RunProgressComponent>;
/**
 * Props for RunProgressOverlay component
 */
interface RunProgressOverlayProps extends RunProgressProps {
  /** Whether the overlay is visible */
  visible?: boolean;
  /** Background opacity (0-1) */
  opacity?: number;
}
/**
 * RunProgressOverlay Component
 *
 * A full-container overlay version of RunProgress.
 *
 * @example
 * ```tsx
 * <div style={{ position: 'relative', height: 400 }}>
 *   <YourContent />
 *   <RunProgressOverlay
 *     visible={isLoading}
 *     status="Running"
 *     message="Loading data..."
 *   />
 * </div>
 * ```
 */
declare function RunProgressOverlayComponent({
  visible,
  opacity,
  ...progressProps
}: RunProgressOverlayProps): react_jsx_runtime10.JSX.Element | null;
declare const RunProgressOverlay: react3.MemoExoticComponent<typeof RunProgressOverlayComponent>;
//#endregion
export { RunStatusWithDateProps as _, RunProgressVariant as a, inferRunStatus as b, RunListItemData as c, RunStatus as d, RunStatusAndDate as f, RunStatusWithDate as g, RunStatusBadgeProps as h, RunProgressProps as i, RunListItemProps as l, RunStatusBadge as m, RunProgressOverlay as n, RunList as o, RunStatusAndDateProps as p, RunProgressOverlayProps as r, RunListItem as s, RunProgress as t, RunListProps as u, formatRunDate as v, formatRunDateTime as y };
//# sourceMappingURL=RunProgress-D7ZOHlEE.d.ts.map