export type InteractableKind = "grab" | "trigger";

export interface TriggerInteractableHandle {
  kind: "trigger";
  label: string;
  onPress: () => void;
}

export interface GrabInteractableHandle {
  kind: "grab";
  label: string;
  onPress: () => void;
  onRelease: () => void;
}

export type InteractableHandle =
  | TriggerInteractableHandle
  | GrabInteractableHandle;

export interface InteractionSnapshot {
  focused: InteractableHandle | null;
  holding: boolean;
}
